🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### server代码 ***** server.cpp ``` // UdpS.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include <stdio.h> #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") #define BUF_SIZE 100 int main() { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0); //绑定套接字 sockaddr_in servAddr; memset(&servAddr, 0, sizeof(servAddr)); servAddr.sin_family = PF_INET; servAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); servAddr.sin_port = htons(1234); bind(sock, (SOCKADDR*)&servAddr, sizeof(SOCKADDR)); //接收客户端消息 SOCKADDR clntAddr; int nSize = sizeof(SOCKADDR); char buffer[BUF_SIZE]; while (1) { int strLen = recvfrom(sock, buffer, BUF_SIZE, 0, &clntAddr, &nSize); sendto(sock, buffer, strLen, 0, &clntAddr, nSize); } closesocket(sock); WSACleanup(); return 0; } ``` ### client代码 ***** client.cpp ``` // UdpC.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include <stdio.h> #include <WinSock2.h> #pragma comment (lib, "ws2_32.lib") #define BUF_SIZE 100 int main() { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); SOCKET sock = socket(PF_INET, SOCK_DGRAM, 0); //服务器的地址信息 sockaddr_in servAddr; memset(&servAddr, 0, sizeof(servAddr)); servAddr.sin_family = PF_INET; servAddr.sin_addr.S_un.S_addr = inet_addr("127.0.1"); servAddr.sin_port = htons(1234); //不断获取用户输入的并发送给服务器,然后接收服务器 sockaddr fromAddr; int addrLen = sizeof(sockaddr); while (1) { char buffer[BUF_SIZE] = {0}; printf("Input a string:"); gets_s(buffer); sendto(sock, buffer, strlen(buffer), 0, (struct sockaddr*)&servAddr,sizeof(servAddr)); int strLen = recvfrom(sock, buffer, BUF_SIZE, 0, &fromAddr, &addrLen); buffer[strLen] = 0; printf("Message from server :%s\n",buffer); } closesocket(sock); WSACleanup(); system("pause"); return 0; } ```