新闻资讯
看你所看,想你所想

udp server

udp server

#include <Winsock2.h>
#pragma comment(lib,"WS2_32.lib")
#include <stdio.h>
#include <stdlib.h>
#define SERVER_IP "127.0.0.1" // 伺服器端IP位址
#define SERVER_PORT 5260 // 伺服器连线埠号
#define DATA_BUFFER 1024 //默认缓冲区大小
int main()
{
WSADATA wsaData;
SOCKET sClient;
int iPort = SERVER_PORT;
int iLen;//从伺服器端接收的数据长度
char buf[DATA_BUFFER];//接收数据的缓冲区
char sbuf[100];
struct sockaddr_in ser;//伺服器端地址
//判断参数输入是否正确:client [Server IP]
memset(buf,0,sizeof(buf));//接收缓冲区初始化
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
printf("Failed to load Winsock.\n");
return -1;
}
//填写要连线的伺服器地址信息
ser.sin_addr.S_un.S_addr=inet_addr(SERVER_IP);
ser.sin_family = AF_INET; // 默认
ser.sin_port = htons(iPort); // 连线埠号 htons是由主机位元组序转换为网路位元组序
//inet_addr()将命令行中输入的点分IP位址转换为二进制表示的网路位元组序IP位址
sClient = socket(AF_INET,SOCK_DGRAM,0);//建立客户数据报式套接口
int len=sizeof(sockaddr);
sendto(sClient,sbuf,strlen(sbuf)+1,0,(struct sockaddr*)&ser,sizeof(sockaddr));
iLen = recvfrom(sClient,buf,sizeof(buf)+1,0,(struct sockaddr*)&ser,&len);
if(iLen == SOCKET_ERROR)
{
printf("recvfrom() Failed: %d\n",WSAGetLastError());
}
else
printf("recvfrom() data from server: %s\n",buf);
closesocket(sClient);//关闭伺服器端套接字
WSACleanup();//中止了Windows Sockets在所有执行绪上的操作,释放资源
return 0;
}

转载请注明出处海之美文 » udp server

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com