伺服器端程式實現步驟:
1。建立套接字(socket)。
2。將套接字繫結到乙個本地位址和埠上(bind)。
3。將套接字設為監聽模式,準本接受客戶請求(listen)。
4。等待客戶請求到來;當請求到來後,接受連線請求,返回乙個新的對應於此次連線的套接字(accept)。
5。用返回的套接字和客戶端進行通訊(send / recv)。
6。返回,等待另乙個客戶請求。
7。關閉套接字。
伺服器端**:
#include#includevoid main()
if ( lobyte( wsadata.wversion ) != 1 ||
hibyte( wsadata.wversion ) != 1 )
socket socksrv=socket(af_inet,sock_stream,0);
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr=htonl(inaddr_any);
addrsrv.sin_family=af_inet;
addrsrv.sin_port=htons(6000);
bind(socksrv,(sockaddr*)&addrsrv,sizeof(sockaddr));
listen(socksrv,5);
sockaddr_in addrclient;
int len=sizeof(sockaddr);
while(1)
}
客戶端程式實現步驟:
1。建立套接字(socket)。
2。向伺服器傳送連線請求(connect)。
3。和伺服器端進行通訊(send / recv)。
4。關閉套接字。
客戶端**:
#include#includevoid main()
if ( lobyte( wsadata.wversion ) != 1 ||
hibyte( wsadata.wversion ) != 1 )
socket sockclient=socket(af_inet,sock_stream,0);
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr=inet_addr("127.0.0.1");
addrsrv.sin_family=af_inet;
addrsrv.sin_port=htons(6000);
connect(sockclient,(sockaddr*)&addrsrv,sizeof(sockaddr));
char recvbuf[100];
recv(sockclient,recvbuf,100,0);
printf("%s\n",recvbuf);
send(sockclient,"this is xiaohe",strlen("this is xiaohe")+1,0);
closesocket(sockclient);
wsacleanup();
}
ps:注意加入工程連線 ws2_32.lib
基於UDP的 C S模式 網路應用程式
伺服器端程式實現步驟 1。建立套接字 socket 2。將套接字繫結到乙個本地位址和埠上 bind 3。等待接收資料 recvfrom 4。關閉套接字。伺服器端 include includevoid main if lobyte wsadata.wversion 1 hibyte wsadata....
基於TCP協議的C S通訊
一 環境 os win10 ide visual studio 2010 二 在同一解決方案下新建兩個win32控制台應用程式,專案名分別是server和client,分別在兩個專案的原始檔下新增server.cpp和client.cpp server.cpp include include inc...
基於TCP和UDP的Socket網路應用程式
基於tcp和udp的socket網路應用程式 計算機網路課設 一 需求分析 利用socket編寫乙個簡單的網路應用程式,獲取伺服器當前的時間和日期。說明與要求 1 對客戶與伺服器之間使用的協議進行設計。2 分別採用流式套接字和資料報套接字進行實現。二 程式設計 2.1 基於tcp協議的流程 編寫用t...