-
-
Save gene9/fb115ffdaa4e9bbd66f1c68b60bd2d3b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef UNICODE | |
#define UNICODE | |
#endif | |
#define WIN32_LEAN_AND_MEAN | |
#include <winsock2.h> | |
#include <Ws2tcpip.h> | |
#include <stdio.h> | |
int __cdecl main() | |
{ | |
WSADATA wsaData; | |
WSABUF DataBuf; | |
WSAOVERLAPPED Overlapped; | |
SOCKET RecvSocket = INVALID_SOCKET; | |
struct sockaddr_in RecvAddr; | |
struct sockaddr_in SenderAddr; | |
int SenderAddrSize = sizeof (SenderAddr); | |
u_short Port = 27015; | |
char RecvBuf[65507]; | |
int BufLen = 65507; | |
DWORD BytesRecv = 0; | |
DWORD Flags = 0; | |
int err = 0; | |
int rc; | |
int retval = 0; | |
DWORD bytes; | |
ULONG_PTR key; | |
OVERLAPPED* o; | |
//----------------------------------------------- | |
// Initialize Winsock | |
rc = WSAStartup(MAKEWORD(2, 2), &wsaData); | |
SecureZeroMemory((PVOID) &Overlapped, sizeof(WSAOVERLAPPED) ); | |
HANDLE iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 1); | |
// Create a receiver socket to receive datagrams | |
RecvSocket = WSASocket(AF_INET, | |
SOCK_DGRAM, | |
IPPROTO_UDP, NULL, 0, WSA_FLAG_OVERLAPPED); | |
RecvAddr.sin_family = AF_INET; | |
RecvAddr.sin_port = htons(Port); | |
RecvAddr.sin_addr.s_addr = inet_addr("0.0.0.0"); | |
CreateIoCompletionPort((HANDLE)RecvSocket, iocp, (ULONG_PTR)RecvSocket, 0); | |
rc = bind(RecvSocket, (SOCKADDR *) & RecvAddr, sizeof (RecvAddr)); | |
DataBuf.len = 0; | |
DataBuf.buf = 0; | |
Flags = MSG_PEEK; | |
rc = WSARecv(RecvSocket, | |
&DataBuf, | |
1, | |
&BytesRecv, | |
&Flags, | |
&Overlapped, NULL); | |
closesocket(RecvSocket); | |
GetQueuedCompletionStatus(iocp, &bytes, &key, &o, INFINITE); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment