服务端
#include <Winsock2.h>
#include <stdio.h>
/*
UDP服务端
*/
void main(){
//加载嵌套字库
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;
}
//创建用于监听的嵌套字
SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_family=AF_INET;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_port=htons(6000);
//绑定嵌套字
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
//等待接受数据
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
char recv[100];
recvfrom(sockSrv,recv,100,0,(SOCKADDR*)&addrClient,&len);
printf("%s\n",recv);
//关闭嵌套字
closesocket(sockSrv);
WSACleanup();
}
客户端
#include <Winsock2.h>
#include <stdio.h>
void main(){
//加载嵌套字库
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;
}
//创建用于监听的嵌套字
SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_family=AF_INET;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_port=htons(6000);
//发送数据
sendto(sockClient,"hello",sizeof("hello"),0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
//关闭嵌套字
closesocket(sockClient);
WSACleanup();
}
浙公网安备 33010602011771号