#include <winsock2.h> #include <stdio.h> int main() { short port = 39890; SOCKET sock = INVALID_SOCKET; int err = 0; struct sockaddr_in senderaddr, recvaddr; int senderaddrsize; WSADATA wsadata; const int recvsize = 1024; char recvbuf[recvsize]; if ( WSAStartup(MAKEWORD(2,2), &wsadata) != 0 ) { return 1; } sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if ( sock == INVALID_SOCKET ) { WSACleanup(); return 1; } recvaddr.sin_family = AF_INET; recvaddr.sin_port = htons(port); recvaddr.sin_addr.s_addr = htonl(INADDR_ANY); printf("Sever IP: %s\n", inet_ntoa(recvaddr.sin_addr)); err = bind(sock, (struct sockaddr *) &recvaddr, sizeof(recvaddr)); if ( err != 0 ) { printf("bind failed: %d\n", WSAGetLastError()); return 1; } printf("waiting for datagrams\n"); err = recvfrom(sock, recvbuf, recvsize, 0, (struct sockaddr *) &senderaddr, &senderaddrsize); if ( err == SOCKET_ERROR ) { printf("recvfrom error: %d\n", WSAGetLastError()); } WSACleanup(); while ( 1 ) { } }
int senderaddrsize = sizeof(senderaddr)
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)