最簡單Socket程式設計用到的流程 伺服器

2021-08-17 05:19:11 字數 2486 閱讀 3578

伺服器端

1.包含相關標頭檔案    #include

2.指明要連線的庫    #pragma comment(lib, "ws2_32.lib")

3.初始化wsa, 主要作用是通過乙個程序初始化ws2_32.dll

4.建立套接字(因為是伺服器端, 所以這裡用作 監聽套接字)

用到的函式 : socket();

//建立套接字

socket slisten;

slisten = socket(af_inet, sock_stream, ipproto_tcp); 

//以下是引數說明:

//位址格式, 套接字型別sock_stream為tcp, 協議(此處為tcp協議)

//                 套接字型別sock_dgram為udp

5.定義 struct sockaddr_in sin; 並設定相關引數

sin.sin_family = af_inet; //設定位址家族

sin.sin_port = htons(8888); //設定埠號,inet_addr("192.168.1.0");

sin.sin_addr.s_un.s_addr = inaddr_any; //設定位址

6.繫結埠及套接字

//繫結埠

if((bind(slisten, (lpsockaddr)&sin, sizeof(sin)) == socket_error))  //套接字指向sockaddr_in結構體的指標,引數長度 

printf("接受到乙個連線:%s \r\n", inet_ntoa(remoteaddr.sin_addr));  //將ipv4位址轉化為. . . .形式的字串

//接收資料  

ret = recv(sclient, revdata, 255, 0);       //返回接收到的資料的位元組數; 引數: 連線套接字, 接收陣列, 陣列長度,    

if(ret > 0)  

//傳送資料  

send(sclient, senddata, strlen(senddata), 0); //連線套接字, 要傳送資料所儲存位置對應的位址, 長度

closesocket(sclient); //關閉連線套接字

9.關閉監聽套接字, 並終止ws2_32.dll的使用

closesocket(slisten); //關閉監聽套接字

wsacleanup(); //終止ws2_32.dll的使用

最終**:

#include //#include #include #pragma comment(lib, "ws2_32.lib")

int main()

//建立套接字

slisten = socket(af_inet, sock_stream, ipproto_tcp);

//位址格式, 套接字型別 sock_stream為tcp, 協議(此處為tcp協議)

//套接字型別sock_dgram為udp

if(slisten == invalid_socket)

sin.sin_family = af_inet; //設定位址家族

sin.sin_port = htons(8888); //設定埠號,inet_addr("192.168.1.0");

sin.sin_addr.s_un.s_addr = inaddr_any; //設定位址

//繫結埠

if((bind(slisten, (lpsockaddr)&sin, sizeof(sin)) == socket_error))

//套接字, 指向sockaddr_in結構體的指標,引數長度

//開始監聽

if(listen(slisten, 5) == socket_error) //套接字, 為該套接字排隊的最大連線數

//此時, slisten 變為監聽套接字

//迴圈接收資料

while(1)

printf("接受到乙個連線:%s \r\n", inet_ntoa(remoteaddr.sin_addr));

//將ipv4位址轉化為. . . .形式的字串

//接收資料

ret = recv(sclient, revdata, 255, 0);

//返回接收到的資料的位元組數; 引數: 連線套接字, 接收陣列, 陣列長度,

if(ret > 0)

//傳送資料

send(sclient, senddata, strlen(senddata), 0);

//連線套接字, 要傳送資料所儲存位置對應的位址, 長度

closesocket(sclient); //關閉連線套接字

} closesocket(slisten); //關閉監聽套接字

wsacleanup(); //終止ws2_32.dll的使用

return 0;

}

最簡單的socket程式設計

用python做socket程式設計,從實現上來講,是非常簡單的。下面是從他的幫助文件裡面取出來的兩段 顯示了服務端和客戶端。服務端 echo server program import socket host 127.0.0.1 symbolic name meaning the local ho...

linux網路程式設計1 最簡單的socket程式設計

下面是socket程式設計的伺服器端 先看乙個圖,1 客戶端複製 1 include 2 include 3 include 4 include 56 include 7 include 8 include 910 include 錯誤 1112 define maxline 80 13 defin...

簡單的socket程式設計

服務端tcp server.c include include include include include include include define port 8888 埠位址 define backlog 2 監聽佇列長度 int main int argc,char argv memse...