//udp 服务端
#include<iostream>
#include<winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#define MAX_DATA 50
#define FAILURE -1
char serverIp[]="127.0.0.1";
int port =6000;
int main()
{
WSADATA ws;
WSAStartup(MAKEWORD(2,2),&ws);
//创建socket对象
int sockfd=socket(AF_INET,SOCK_DGRAM,0);
//创建网络通信对象
struct sockaddr_in addr;
addr.sin_family =AF_INET;
addr.sin_port =htons(port);
//addr.sin_addr.s_addr=inet_addr(INADDR_ANY);
addr.sin_addr.s_addr=inet_addr(serverIp);
//绑定socket对象与通信链接
int ret =bind(sockfd,(struct sockaddr*)&addr,sizeof(addr));
if(ret<0)
{
printf("bind error:%d\n",WSAGetLastError());
return FAILURE;
}
struct sockaddr_in sockClient;
int len=sizeof(sockaddr_in);
char data[MAX_DATA]={0};
while(1)
{
ret = recvfrom(sockfd,data,sizeof(data),0,(struct sockaddr*)&sockClient,&len);
if(ret == SOCKET_ERROR)
printf("recv data error %d\n",WSAGetLastError());
else
printf("recv data =%s\n",data);
sprintf(data,"%s","server data");
ret = sendto(sockfd,data,sizeof(data),0,(struct sockaddr*)&sockClient,len);
if(ret == SOCKET_ERROR)
printf("server send error %d\n",WSAGetLastError());
else
printf("server send :%s\n",data);
Sleep(10);
}
closesocket(sockfd);
}
//udp 客户端
#include<iostream>
#include<winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#define MAX_DATA 50
int port = 6000;
char serverIp[]="127.0.0.1";
int main()
{
WSADATA ws;
WSAStartup(MAKEWORD(2,2),&ws);
//创建socket对象
int sockfd=socket(AF_INET,SOCK_DGRAM,0);
//创建网络通信对象
struct sockaddr_in addr;
addr.sin_family =AF_INET;
addr.sin_port =htons(6000);
addr.sin_addr.s_addr = inet_addr(serverIp);
char data[MAX_DATA]="client data";
char recvData[MAX_DATA]={0};
int ret =0;
while(1)
{
sprintf(data,"%s","client data");
ret = sendto(sockfd,data,sizeof(data),0,(struct sockaddr*)&addr,sizeof(addr));
if(ret ==SOCKET_ERROR)
{
printf("send error: %d\n",WSAGetLastError());
}
else
{
printf("send sucess data:%s\n",data);
}
int len=sizeof(addr);
ret = recvfrom(sockfd,recvData,sizeof(recvData),0,(struct sockaddr*)&addr,&len);
if(ret ==SOCKET_ERROR)
{
printf(" recv error :%d\n",WSAGetLastError());
}
else
{
printf("server data:%s\n",recvData);
}
Sleep(10);
}
closesocket(sockfd);
}