VS在windows进行网络开发UDP(一)

xiaoxiao2021-02-28  54

下面代码可以直接运行(需要在属性中更改C++的SDL检查,关掉就好了)

其实是非常简单的。

代码如下:

#include <iostream> #include <winsock2.h> using namespace std; #pragma comment(lib, "WS2_32.lib") int main() { WSADATA data; // 定义结构体变量 WORD w = MAKEWORD(2, 0); // 定义套接字版本 ::WSAStartup(w, &data); // 初始化套接字库 char sztext[] = "Welcome\n"; // 创建字符串 SOCKET s; // 定义套接字句柄 s = ::socket(AF_INET, SOCK_DGRAM, 0); // 定义套接字类型 sockaddr_in addr, addr2; // 创建套接字地址类型 int n = sizeof(sztext); // 地址结构体变量的大小 char buff[10] = { 0 }; // 接受数据缓冲区域 addr.sin_family = AF_INET; addr.sin_port = htons(75); // 设置ip地址变量端口 addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");// 设置ip地址 ::bind(s, (sockaddr*)&addr, sizeof(addr)); // 绑定对应的地址跟端口号 cout << "UDP Server is Working!\n"; while (1) { if (::recvfrom(s, buff, 10, 0, (sockaddr*)&addr2, &n) != 0) {//会在这进行阻塞直到收到消息。 cout << inet_ntoa(addr2.sin_addr) << " have linked!\n"; cout << "The message is " << buff << endl; ::sendto(s, sztext, sizeof(sztext), 0, (sockaddr*)&addr2, n); break; } } ::closesocket(s); ::WSACleanup(); system("pause"); return 0; }
转载请注明原文地址: https://www.6miu.com/read-2400329.html

最新回复(0)