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.\");

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\",WSAGetLastError());

}

else

printf("recvfrom() data from server: %s\",buf);

closesocket(sClient);//关闭服务器端套接字

WSACleanup();//中止了Windows Sockets在所有线程上的操作,释放资源

return 0;

}

相关分词: udp server