#define WIN32_LEAN_AND_MEAN #include #include #include #define SelectEvent(dwError) WSAGETSELECTEVENT(dwError) #define SelectError(dwError) WSAGETSELECTERROR(dwError) #define SAFE_CLOSESOCK(p) { if (INVALID_SOCKET != (p)) { closesocket(p); (p) = INVALID_SOCKET; } } namespace Socket { void InitWinsock(void); void ReleaseWinsock(void); SOCKADDR_IN MakeSockAddr(IN_ADDR Addr, int Port_In); SOCKADDR_IN MakeSockAddr(char *IP_In, int Port_In); bool CreateTCPSocket(SOCKET *Socket_Out, HWND hWnd_In, unsigned int Msg_In); bool CreateUDPSocket(SOCKET *Socket_Out, SOCKADDR_IN Address_In, HWND hWnd_In, unsigned int Msg_In); bool DeleteSocket(SOCKET *Socket_In, HWND hWnd_In); bool GetNATAddress(SOCKET Socket_In, SOCKADDR_IN *Address_Out, bool AllowVirtual); bool GetHostName(char *Name_Out, int Size); bool GetHostIP(IN_ADDR &Addr, bool AllowVirtual); bool GetHostIP(IN_ADDR &Addr, char *Domain); bool IsWrongIP(IN_ADDR &Addr); bool IsEmptyAddr(IN_ADDR &Addr); bool Connect(SOCKET Socket_In, SOCKADDR_IN Address_In, WSABUF *WSABuf_In); };