Created
August 24, 2011 22:06
-
-
Save igorzi/1169397 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