UDP 是USER DATAGRAM PROTOCAL 的簡稱,是一種在網絡上提供的無連接的傳輸協議。
用UDP通信有以下特點:
啟動SOCKET庫,版本為2.0 WSAStartup(0x0202,&wsdata);然後賦值給兩個地址,一個用來綁定套接字,一個用來從網絡上的廣播地址接收消息;
...... 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); //設置該套接字為廣播類型, 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 ",buf); ZeroMemory(buf,256); } .....無連接協議不用LISTEN也不用ACCEPT,他直接從廣播地址上接收消息,但我們必須要設置該套接字為廣播類型。