1、UdpServer(UDP服务端)代码,适用于初学者学习
2、可配套NetAssist网络调试工具,开客户端收发测试
3、windows下使用,本人工具vs2015
// UdpServer.cpp : 定义控制台应用程序的入口点。
//
#include <stdio.h>
#include <iostream>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
WSADATA wsaData;//初始化
SOCKET recvSocket;
sockaddr_in recvAddr;//服务器地址
int recvAddrSize = sizeof(recvAddr);
//初始化socket
WSAStartup(MAKEWORD(2, 2), &wsaData);
//创建接收数据包的socket
recvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
//socket与指定端口绑定
recvAddr.sin_family = AF_INET;
recvAddr.sin_port = htons(12345);
recvAddr.sin_addr.s_addr = htonl(INADDR_ANY);
::bind(recvSocket, (SOCKADDR*)&recvAddr, sizeof(recvAddr));
//调用recvfrom函数在绑定的socket上接收数据
printf("receiving begin...\n");
char recvBuf[2];
while (1) {
memset(&recvBuf, 0, 2);
int ret = recvfrom(recvSocket, recvBuf, 2, 0, (SOCKADDR*)&recvAddr, &recvAddrSize);
char* ip = inet_ntoa(recvAddr.sin_addr);
if (ret == SOCKET_ERROR || ret == 0)
break;
printf("ip=%s, recv=%s\n", ip, recvBuf);
}
//关闭socket,结束接收数据
printf("received end..\n");
closesocket(recvSocket);
WSACleanup();
getchar();
return 0;
}