服务器端代码:
- #include <Winsock2.h>
- #include <stdio.h>
- void main()
- {
- //load socket
- WORD wVersionRequested;
- WSADATA wsaData;
- int err;
- wVersionRequested=MAKEWORD(1,1);
- err=WSAStartup(wVersionRequested,&wsaData);
- if(err!=0)
- {
- return;
- }
- if(LOBYTE(wsaData.wVersion)!=1 ||
- HIBYTE(wsaData.wVersion)!=1)
- {
- WSACleanup();
- return;
- }
- //create socket
- SOCKET socketSrv=socket(AF_INET,SOCK_DGRAM,0);
- SOCKADDR_IN addrSrv;
- addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
- addrSrv.sin_family=AF_INET;
- addrSrv.sin_port=htons(6000);
- //bind
- bind(socketSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
- //wait and receive data
- SOCKADDR_IN addrClient;
- int len=sizeof(SOCKADDR);
- char recvBuf[100];
- while(1)
- {
- memset(recvBuf,'/0',sizeof(recvBuf));
- recvfrom(socketSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
- printf("%s/n",recvBuf);
- }
- //close socket
- closesocket(socketSrv);
- WSACleanup();
- }
客户端代码:
- #include <Winsock2.h>
- #include <stdio.h>
- void main()
- {
- //load socketlib
- WORD wVersionRequested;
- WSADATA wsaData;
- int err;
- wVersionRequested=MAKEWORD(1,1);
- err=WSAStartup(wVersionRequested,&wsaData);
- if(err!=0)
- {
- return;
- }
- if(LOBYTE(wsaData.wVersion)!=1 ||
- HIBYTE(wsaData.wVersion)!=1)
- {
- WSACleanup();
- }
- //create socket
- SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
- SOCKADDR_IN addrSrv;
- addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
- addrSrv.sin_family=AF_INET;
- addrSrv.sin_port=htons(6000);
- //send data
- sendto(sockClient,"hello yuwei",strlen("hello yuwei")+1,0,
- (SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
- //close socket
- closesocket(sockClient);
- WSACleanup();
- }