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

2021-06-16 19:12:14 字數 1535 閱讀 1396

伺服器端程式實現步驟:

1。建立套接字(socket)。

2。將套接字繫結到乙個本地位址和埠上(bind)。

3。等待接收資料(recvfrom)。

4。關閉套接字。

伺服器端**:

#include#includevoid main()

if ( lobyte( wsadata.wversion ) != 1 ||

hibyte( wsadata.wversion ) != 1 )

socket socksrv=socket(af_inet,sock_dgram,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));

sockaddr_in addrclient;

int len=sizeof(sockaddr);

char recvbuf[100];

recvfrom(socksrv,recvbuf,100,0,(sockaddr*)&addrclient,&len);

printf("%s\n",recvbuf);

closesocket(socksrv);

wsacleanup();

}

客戶端程式實現步驟:

1。建立套接字(socket)。

2。向伺服器傳送資料(sendto)。

3。關閉套接字。

客戶端**:

#include#includevoid main()

if ( lobyte( wsadata.wversion ) != 1 ||

hibyte( wsadata.wversion ) != 1 )

socket sockclient=socket(af_inet,sock_dgram,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);

sendto(sockclient,"hello",strlen("hello")+1,0,

(sockaddr*)&addrsrv,sizeof(sockaddr));

closesocket(sockclient);

wsacleanup();

}

ps:注意加入工程連線 ws2_32.lib

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

伺服器端程式實現步驟 1。建立套接字 socket 2。將套接字繫結到乙個本地位址和埠上 bind 3。將套接字設為監聽模式,準本接受客戶請求 listen 4。等待客戶請求到來 當請求到來後,接受連線請求,返回乙個新的對應於此次連線的套接字 accept 5。用返回的套接字和客戶端進行通訊 sen...

基於TCP和UDP的Socket網路應用程式

基於tcp和udp的socket網路應用程式 計算機網路課設 一 需求分析 利用socket編寫乙個簡單的網路應用程式,獲取伺服器當前的時間和日期。說明與要求 1 對客戶與伺服器之間使用的協議進行設計。2 分別採用流式套接字和資料報套接字進行實現。二 程式設計 2.1 基於tcp協議的流程 編寫用t...

基於TCP和UDP網路應用程式的編寫

1 tcp 伺服器端 include include int main 判斷是否我們請求的版本號 if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 建立用於監聽的套接字 第三個引數為0,這樣函式將根據位址格式和套接字類別自動選擇乙個合適的協...