udp server

王朝百科·作者佚名  2012-05-10
窄屏简体版  字體: |||超大  

#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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航