您的位置:首页 > 编程语言 > C语言/C++

c++中UDP通信实现

2017-05-08 17:03 543 查看



client端

#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")

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_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);

bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
char recvBuf[100];

recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
printf("%s\n",recvBuf);
closesocket(sockSrv);
WSACleanup();
}

server端

#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")

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_addr.S_un.S_addr=inet_addr("192.168.0.104");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);

sendto(sockClient,"Hello",strlen("Hello")+1,0,
(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
closesocket(sockClient);
WSACleanup();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: