接收端
1 #include 2 #include 3傳送端4#pragma comment(lib,"ws2_32.lib")56
int main(void)7
; //
通訊資料緩衝區
13int nbuflen = 1024,nresult = 0, nsenderaddrsize = sizeof
(ssendaddr);
1415
//初始化socket2.2版本
16 nresult = wsastartup(makeword(2, 2), &wsd);
17if (nresult !=no_error)
1822
23//
建立乙個socket,sock_dgram表示udp型別
24 s =socket(af_inet, sock_dgram, ipproto_udp);
25if (s ==invalid_socket)
2630
31//
填充socket介面
32 srecvaddr.sin_family = af_inet; //
位址協議,af_inet支援tcp和udp
33 srecvaddr.sin_port = htons(uport); //
通訊埠,htons轉為網路位元組順序
34 srecvaddr.sin_addr.s_un.s_addr = htonl(inaddr_any); //
接收任意位址資料
3536
//繫結socket至本機
37 nresult = bind(s, (sockaddr *)&srecvaddr, sizeof
(srecvaddr));
38if (nresult != 0)39
4344 printf("
waiting recv data...\n");
45//
阻塞式接收資料
46 nresult = recvfrom(s, szbuf, nbuflen, 0, (sockaddr *)&ssendaddr, &nsenderaddrsize);
47if (nresult ==socket_error)
4851
else
55//
關閉socket連線
56 nresult =closesocket(s);
57if (nresult ==socket_error)
5862
//清理socket
63wsacleanup();
6465 system("
pause");
66return0;
67 }
#include #include效果圖#include
#pragma comment(lib,"ws2_32.lib")
int main(void
) s = socket(af_inet, sock_dgram, 0
);
if (s ==invalid_socket)
sockaddr_in addr;
socket sockclient = socket(af_inet, sock_dgram, 0
); addr.sin_family =af_inet;
addr.sin_addr.s_un.s_addr = inet_addr("
172.18.0.67");
addr.sin_port = htons(1401
); sendto(sockclient,
"測試udp通訊!
", 50, 0, (sockaddr *)&addr, 50
); closesocket(s);
wsacleanup();
printf(
"hello world!\n");
system(
"pause");
return0;
}
socket實現UDP通訊
udp與tcp不同,是一種無連線的通訊方式,相比tcp而言更加靈活。利用socket實現udp的方式相比tcp而言也更加簡單。傳送方 1.初始化套接字 2.建立socket 3.利用sendto傳送資料 tcp是send 4.關閉socket 接收方 1.初始化套接字 2.建立socket並與本機進...
C 通過socket實現UDP 通訊
接下來我們通過乙個簡單的程式看一下udp通訊的過程。服務端程式 using system using system.collections.generic using system.linq using system.text using system.threading.tasks using s...
socket通訊之 udp協議2
步驟 1.建立套接字 2.繫結ip 3.讀取資料 include include see notes include include include include define srv port 9999 int main int argc,char argv bind addr struct s...