UDP连接实现

服务器端代码:

  1. #include <Winsock2.h>
  2. #include <stdio.h>
  3. void main()
  4. {
  5.     //load socket
  6.     WORD wVersionRequested;
  7.     WSADATA wsaData;
  8.     int err;
  9.     wVersionRequested=MAKEWORD(1,1);
  10.     err=WSAStartup(wVersionRequested,&wsaData);
  11.     if(err!=0)
  12.     {
  13.         return;
  14.     }
  15.     if(LOBYTE(wsaData.wVersion)!=1 || 
  16.         HIBYTE(wsaData.wVersion)!=1)
  17.     {
  18.         WSACleanup();
  19.         return;
  20.     }
  21.     //create socket
  22.     SOCKET socketSrv=socket(AF_INET,SOCK_DGRAM,0);
  23.     SOCKADDR_IN addrSrv;
  24.     addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
  25.     addrSrv.sin_family=AF_INET;
  26.     addrSrv.sin_port=htons(6000);
  27.     //bind 
  28.     bind(socketSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
  29.     //wait and receive data
  30.     SOCKADDR_IN addrClient;
  31.     int len=sizeof(SOCKADDR);
  32.     char recvBuf[100];
  33.     while(1)
  34.     {
  35.         memset(recvBuf,'/0',sizeof(recvBuf));
  36.         recvfrom(socketSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
  37.         printf("%s/n",recvBuf);
  38.     }   
  39.     //close socket
  40.     closesocket(socketSrv);
  41.     WSACleanup();
  42. }

 

客户端代码:

  1. #include <Winsock2.h>
  2. #include <stdio.h>
  3. void main()
  4. {
  5.     //load socketlib
  6.     WORD wVersionRequested;
  7.     WSADATA wsaData;
  8.     int err;
  9.     wVersionRequested=MAKEWORD(1,1);
  10.     err=WSAStartup(wVersionRequested,&wsaData);
  11.     if(err!=0)
  12.     {
  13.         return;
  14.     }
  15.     if(LOBYTE(wsaData.wVersion)!=1 ||
  16.         HIBYTE(wsaData.wVersion)!=1)
  17.     {
  18.         WSACleanup();
  19.     }
  20.     //create socket
  21.     SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
  22.     SOCKADDR_IN addrSrv;
  23.     addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
  24.     addrSrv.sin_family=AF_INET;
  25.     addrSrv.sin_port=htons(6000);
  26.     
  27.     //send data 
  28.     sendto(sockClient,"hello yuwei",strlen("hello yuwei")+1,0,
  29.         (SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
  30.     //close socket
  31.     closesocket(sockClient);
  32.     WSACleanup();
  33. }

你可能感兴趣的:(UDP连接实现)