基於TCP的 C S模式 網路應用程式

2021-06-16 18:56:36 字數 1705 閱讀 5537

伺服器端程式實現步驟:

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...