词条 | 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; } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。