"L. Spiro Engine"
|
00001 00017 #ifndef __LSN_WINSOCK_H__ 00018 #define __LSN_WINSOCK_H__ 00019 00020 #include "../LSNNetLib.h" 00021 #include "String/LSTLString.h" 00022 00023 #ifdef LSE_WINDOWS 00024 #include <winsock2.h> 00025 #include <ws2tcpip.h> 00026 00027 namespace lsn { 00028 00029 // == Enumerations. 00033 enum LSN_ERRORS { 00034 LSN_FAILURE = 0, 00035 LSN_SUCCESS = 1, 00036 LSN_NO_ADDRESS = INADDR_NONE, 00037 LSN_CONN_ABORTED = WSAECONNABORTED, 00038 LSN_CONN_RESET = WSAECONNRESET, 00039 LSN_NET_UNREACHABLE = WSAENETUNREACH, 00040 LSN_HOST_UNREACHABLE = WSAEHOSTUNREACH, 00041 LSN_TIMED_OUT = WSAETIMEDOUT, 00042 LSN_IN_USE = WSAEADDRINUSE, 00043 00044 LSN_FORCE_DWORD = 0x7FFFFFFF 00045 }; 00046 00054 class CWinSock { 00055 public : 00056 // == Functions. 00062 static LSBOOL LSE_CALL InitNetwork(); 00063 00067 static LSVOID LSE_CALL ShutDownNetwork(); 00068 00074 static LSN_SOCKET LSE_CALL CreateUpdSocket(); 00075 00081 static LSVOID LSE_CALL CloseSocket( LSN_SOCKET _sSock ); 00082 00089 static LSBOOL LSE_CALL CheckSocket( LSN_SOCKET _sSock ); 00090 00097 static LSN_ADDRESS LSE_CALL LookUpAddress( const LSCHAR * _pcName ); 00098 00105 static LSBOOL LSE_CALL GetHostName( CString &_sReturn ); 00106 00116 static LSUINT32 LSE_CALL Bind( LSN_SOCKET _sSock, LSUINT16 _ui16Port, 00117 LSN_ADDRESS _aAddress = LSN_NO_ADDRESS ); 00118 00129 static LSUINT32 LSE_CALL SendTo( LSN_ADDRESS _aAddress, 00130 LSUINT16 _ui16Port, 00131 const LSVOID * _pvData, 00132 LSUINT32 _ui32Len, 00133 LSN_SOCKET _sSocket ); 00134 00145 static LSUINT32 LSE_CALL ReceiveFrom( LSN_SOCKET _sSocket, 00146 LSVOID * _pvData, 00147 LSUINT32 _ui32Len, 00148 LSN_ADDRESS &_aAddress, 00149 LSUINT16 &_ui16Port ); 00150 00151 00152 protected : 00153 // == Members. 00157 static WSADATA m_dData; 00158 }; 00159 00160 } // namespace lsn 00161 00162 #endif // #ifdef LSE_WINDOWS 00163 00164 #endif // __LSN_WINSOCK_H__