伺服器端
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...