c++ UDP套接字服務器端代碼示范
1 #include<winsock2.h> //包含頭文件 2 #include<stdio.h> 3 #include<windows.h> 4 #pragma comment(lib,"WS2_32.lib") //連接套接字庫 5 //txwtech 6 int main() 7 { 8 WSADATA data; //定義結構體變量 9 WORD w=MAKEWORD(2,0); //定義套接字版本 10 char sztext[]="歡迎你\r\n"; //定義歡迎信息 11 ::WSAStartup(w,&data); //初始化套接字庫 12 SOCKET s; //定義套接字句柄 13 s=::socket(AF_INET, SOCK_DGRAM,0); //創建UDP套接字 14 sockaddr_in addr,addr2; //套接字地址結構變量 15 int n=sizeof(addr2); //地址結構變量大小 16 char buff[10]={0}; //接收數據緩沖區 17 addr.sin_family=AF_INET; 18 addr.sin_port=htons(75); 19 addr.sin_addr.S_un.S_addr=INADDR_ANY; 20 ::bind(s,(sockaddr*)&addr,sizeof(addr)); //綁定套接字 21 printf("UDP服務器已經啟動\r\n"); //顯示提示信息 22 23 while(1) 24 { 25 if(::recvfrom(s,buff,10,0,(sockaddr*)&addr2,&n)!=0) //接收客戶端信息 26 { 27 printf("%s已經連接上\r\n",inet_ntoa(addr2.sin_addr)); 28 printf("%s\r\n",buff); 29 ::sendto(s,sztext,sizeof(sztext),0,(sockaddr*)&addr2,n);//發送數據到客戶端 30 break; 31 } 32 } 33 ::closesocket(s); //關閉套接字對象 34 ::WSACleanup(); //釋放套接字庫 35 if(getchar()) //如果有輸入,則關閉程序 36 { 37 return 0; //正常結束程序 38 } 39 else 40 { 41 ::Sleep(100); //應用程序睡眠 42 } 43 }