當前位置:首頁 » 編程語言 » c語言套接字編程教程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言套接字編程教程

發布時間: 2022-03-09 08:48:04

c語言套接字編程實現通信

我知道Linux的,但估計你想要的不是這個。
另:套接字就是 Socket,是網路連接的一種方式,基於TCP、UDP之類的

㈡ 如何用C語言編寫一個簡單的聊天室程序

這樣:

#include <stdlib.h>

#include <stdio.h>

#include <errno.h>

#include <string.h>

#include <unistd.h>

#include <netdb.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <sys/types.h>

#include <arpa/inet.h>

#include <pthread.h>

#define MAXLINE 100;

void *threadsend(void *vargp);

void *threadrecv(void *vargp);

int main()

{

int *clientfdp;

clientfdp = (int *)malloc(sizeof(int));

*clientfdp = socket(AF_INET,SOCK_STREAM,0);

struct sockaddr_in serveraddr;

struct hostent *hp;

bzero((char *)&serveraddr,sizeof(serveraddr));

serveraddr.sin_family = AF_INET;

serveraddr.sin_port = htons(15636);

serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1");

if(connect(*clientfdp,(struct sockaddr *)&serveraddr,sizeof(serveraddr)) < 0){

printf("connect error ");

exit(1);

}

pthread_t tid1,tid2;

printf("connected ");

while(1){

pthread_create(&tid1,NULL,threadsend,clientfdp);

pthread_create(&tid2,NULL,threadrecv,clientfdp);

}

return EXIT_SUCCESS;

}

void *threadsend(void * vargp)

{

//pthread_t tid2;

int connfd = *((int *)vargp);

int idata;

char temp[100];

while(1){

//printf("me: ");

fgets(temp,100,stdin);

send(connfd,temp,100,0);

printf(" client send OK ");

}

printf("client send ");

return NULL;

}

void *threadrecv(void *vargp)

{

char temp[100];

int connfd = *((int *)vargp);

while(1){

int idata = 0;

idata = recv(connfd,temp,100,0);

if(idata > 0){

printf("server : %s ",temp);

}

}

return NULL;

}

(2)c語言套接字編程教程擴展閱讀:

注意事項

linux下編譯多線程代碼時,shell提示找不到 pthread_create函數,原因是 pthread.h不是linux系統默認載入的庫文件,應該使用類似如下gcc命令進行編譯:

gcc echoserver.c -lpthread -o echoserver

只要注意 -lpthread參數就可以了。

㈢ 如何用c語言編寫socket套接字

可以去這里看看
網上的資源還是很多的
我機器上也有很多
要是需要可以給你參考

http://blog.csdn.net/fengyv/archive/2006/04/12/659980.aspx

http://www.21control.com/RTOS/Linux/200512/RTOS_20051212221308.html

㈣ 自學C語言教程

沒有基礎可以入門,通過努力可以達到初、中級程序員的程度,但再往上走,就比較困難了。後面需要不少演算法、英文和數學知識。
教程的話可以參考下面兩本教程:
譚浩強:《C語言程序設計》
李銘城 黃中豪 陳宇芬:《資料結構 C》

英文的話,進入初級之前都不怎麼需要。但是進入中級後,需要讀一些英文資料。不過現在翻譯比較厲害,絕大部分的資料都有翻譯。但是要進入高級,就必須要學習英文了,因為最新最核心的資料都是英文的,翻譯的往往都會有錯誤。
另外數學在早期影響不大,但是進入中級後就必須要了。因為估算演算法時間復雜度、空間復雜度、圖、樹等等,都涉及不少數學知識。當然如果只是做簡單應用或者驅動的話,這方面要求就不會太高。

最後給一個學習大概的路線圖:
入門級的學習,只要能夠掌握:代碼三大結構(循環、分支、順序)、流程圖、C語言關鍵字和語法、輸入輸出、文件操作、套接字操作。就算是初級滿級了。
初級程序員:數據結構和演算法(排序,查找)、了解軟體開發模型(瀑布模型、敏捷模型、原型模型等等)、了解UML、系統常用API、網路通信、編譯和SDK環境搭建
中級程序員:設計模式、多線程編程、網路通信(伺服器、客戶端)、面向對象編程、掌握UML、系統網路/文件/互斥/線程/事件/安全API、STL、相關法律法規、知道一些常用軟體架構(MVC等)

㈤ Windows網路編程案例教程的套接字摘要

套接字屏蔽了從應用程序直接訪問傳輸層的復雜性。在日常生活中兩個人打電話,那個電話機就可以理解為是通話的介面,只要會用電話機,甭管電話間是如何復雜連接的,通話隨時隨地可以輕松完成。套接字就像那個電話機,編程者只要掌握了套接字技術(類似電話機的使用方法),那麼網路編程(就像打電話)工作就非常簡單了。至於套接字與下層的關系,則由操作系統來實現和封裝,因此,套接字簡化網路編程。

對多數操作系統而言,應用程序和操作系統程序是在不同的保護模式下運行的。應用程序一般不能直接訪問操作系統內部的資源,這樣可以避免應用程序非法破壞操作系統的運行。為此,操作系統需要提供應用程序編程介面(Application Programming Interface,API)給應用程序,使其能夠利用操作系統提供的服務。對於網路操作系統,需要為網路應用程序提供網路編程介面實現網路通信。目前多數操作系統提供了套接字(Socket)介面作為網路編程介面。
Berkeley套接字(BSD套接字)是4.2 BSD Unix操作系統(於1983發布)提供的一套應用程序編程介面,是一個用C語言寫成的網路應用程序開發庫,主要用於實現網間進程通信。Berkeley套接字後來成為其它現代操作系統參照的事實工業標准。Windows操作系統在後來的BSD4.3版基礎上實現了自己的Windows Socket(又稱WinSock)套接字編程介面。

㈥ 在windows下用C語言如何實現socket網路編程,需要用到哪些頭文件或者庫

需要用到的頭文件包含:

#include <winsock2.h>

#include <windows.h>

與Linux環境下socket編程相比,windows環境多了一個步驟:啟動或者初始化winsock庫

Winsock,一種標准API,一種網路編程介面,用於兩個或多個應用程序(或進程)之間通過網路進行數據通信。具有兩個版本:

Winsock 1:

Windows CE平台支持。

頭文件:WinSock.h

庫:wsock32.lib

Winsock 2:

部分平台如Windows CE貌似不支持。通過前綴WSA可以區別於Winsock 1版本。個別函數如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都屬於Winsock 1.1規范的函數;

頭文件:WinSock2.h

庫:ws2_32.lib

mswsock.h用於編程擴展,使用時必須鏈接mswsock.dll

(6)c語言套接字編程教程擴展閱讀

winsock庫的載入與卸載:

載入:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

載入成功,返回值為0。

WORD wVersionRequested:載入的winsock版本,使用宏MAKEWORD(x, y),x表示高位元組,y表示低位元組。然而使用時MAKEWORD(2, 2)。高位元組與低位元組相同~~

LPWSADATA lpWSAData:WSADATA結構的指針,傳入參數後,系統幫助我們填充版本信息。有興趣的可以看看結構體內容,不過基本用不著。

卸載:int WSACleanup(void);比起載入,卸載的函數真是輕松愉快。

㈦ C語言Socket編程問題(互相通信)

客戶端與伺服器建立連接
客戶端調用connect函數時,已經知道伺服器的IP地址以及埠號
伺服器中accept返回的套接字中,包含客戶端的IP地址以及埠號
建立的連接是相互的,所以可以互通消息。

㈧ C語言編寫SOCKET基本套接字的使用,出錯了```高手指點下```

除了包含頭文件還要加入socket庫。
加上這一句就行了!
#pragma comment(lib,"WS2_32.lib");

㈨ c語言 多線程套接字編程

你ip的初始值是多少?
有沒有重定向過標准輸入?
另一個線程是否也阻塞在讀標准輸入上?

㈩ 關於 c語言 套接字 的 教程或書

應該沒有專門講套接字的書的吧,想深入了解的話請看TCP/IP詳解卷一卷二卷三,得有心理准備哦,那內容可是相當的多。