作者/JSPHuang
下載源代碼
UDP 是USER DATAGRAM PROTOCAL 的簡稱,是一種在網(wǎng)絡(luò)上提供的無連接的傳輸協(xié)議。
用UDP通信有以下特點(diǎn):
啟動SOCKET庫,版本為2.0WSAStartup(0x0202,&wsdata);然后賦值給兩個地址,一個用來綁定套接字,一個用來從網(wǎng)絡(luò)上的廣播地址接收消息;
......a.sin_family=AF_INET;a.sin_addr.s_addr=0;a.sin_port=htons(5050);from.sin_family=AF_INET;from.sin_addr.s_addr=INADDR_BROADCAST;from.sin_port=htons(5050);int fromlength=sizeof(SOCKADDR);//用UDP初始化套接字s=socket(AF_INET,SOCK_DGRAM,0);//設(shè)置該套接字為廣播類型,setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char FAR *)&optval,sizeof(optval));//把該套接字綁定在一個具體的地址上bind(s,(sockaddr *)&a,sizeof(sockaddr_in));char buf[256];while(1){ //從廣播地址接收消息,注意用來綁定的地址和接收消息的地址是不一樣的recvfrom(s,buf,256,0,(struct sockaddr FAR *)&from,(int FAR *)&fromlength);Sleep(2000);printf("%s\n",buf);ZeroMemory(buf,256);}.....無連接協(xié)議不用LISTEN也不用ACCEPT,他直接從廣播地址上接收消息,但我們必須要設(shè)置該套接字為廣播類型。