1.新建乙個工作空間 udp 新增兩個工程udpclient 和 udpsrv
2.在工程udpsrv中新增udpsrv.cpp檔案
**如下:
#include #include void main()
if (lobyte (wsadata.wversion) != 1 || hibyte(wsadata.wversion) != 1 )
//基於udp建立資料報套接字
//sock_stream是基於tcp的,資料傳輸比較有保障,是資料流,一般是tcp/ip協議的程式設計
//sock_dgram是基於udp的,專門用於區域網,基於廣播,是資料報,是udp協議網路程式設計
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();
}
新增link庫檔案 ws2_32.lib
3.在工程udpclient中新增udpclient.cpp檔案
**如下:
#include #include void 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();
}
同樣新增link庫檔案 ws2_32.lib
4.先執行服務端程式在執行客戶端程式會看到效果
基於UDP的socket網路程式設計
udp的網路程式設計模型較tcp簡單一些,因為udp的特點與tcp的不一樣,tcp是面向連線的,udp是無連線的。udp的服務端程式設計可總結為以下幾個步驟 1.使用socket建立通訊描述符 int socket int domain,int type,int protocol type引數應選擇...
基於TCP與UDP的windows網路程式設計
下面是 winsockapi 提供的幾個轉換函式 u long htonl u long hostlong 將32位的主機位元組序轉換為32位的網路位元組序,htonl host to net long u short htons u short hostshort 將16位的主機位元組序轉換為16...
基於UDP協議的Socket網路程式設計
一 基於udp協議的socket網路程式設計流程 採用 udp 套接字方式實現c s的通訊程式由客戶端和伺服器端兩部分組成。伺服器端程序依次按以下步驟進行 1 呼叫socket 建立乙個資料報套接字 2 呼叫 bind 把伺服器位址繫結在該套接字上 3 呼叫recvform 等待客戶程序發來的請求,...