#include <iostream>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma comment(lib, "ws2_32.lib")
#define PORT 8080
int main() {
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
SOCKET sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == INVALID_SOCKET) {
std::cerr << "Error creating socket" << std::endl;
WSACleanup();
return 1;
}
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(PORT);
serverAddr.sin_addr.s_addr = INADDR_ANY;
if (bind(sockfd, (sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {
std::cerr << "Bind failed" << std::endl;
closesocket(sockfd);
WSACleanup();
return 1;
}
int data[3];
sockaddr_in clientAddr;
int clientAddrSize = sizeof(clientAddr);
int bytesReceived = recvfrom(sockfd, (char*)data, sizeof(data), 0, (sockaddr*)&clientAddr, &clientAddrSize);
if (bytesReceived == SOCKET_ERROR) {
std::cerr << "Error receiving data" << std::endl;
}
else {
int data_1 = ntohl(data[0]);
int data_2 = ntohl(data[1]);
int data_3 = ntohl(data[2]);
std::cout << "Received data: " << data_1 << ", " << data_2 << ", " << data_3 << std::endl;
}
closesocket(sockfd);
WSACleanup();
return 0;
}
C++接收本机UDP数据
最新推荐文章于 2024-04-30 19:48:19 发布