"L. Spiro Engine"
|
00001 00016 #ifndef __LSNPOSIXSOCK_H__ 00017 #define __LSNPOSIXSOCK_H__ 00018 00019 #include "../LSNNetLib.h" 00020 00021 #ifndef LSE_WINDOWS 00022 #include <errno.h> 00023 00024 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00025 // MACROS 00026 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00027 #define LSN_INVALID_SOCKET -1 00031 namespace lsn { 00032 00033 // == Enumerations. 00037 enum LSN_ERRORS { 00038 LSN_FAILURE = 0, 00039 LSN_SUCCESS = 1, 00040 LSN_NO_ADDRESS, 00041 LSN_CONN_ABORTED = ECONNABORTED, 00042 LSN_CONN_RESET = ECONNRESET, 00043 LSN_NET_UNREACHABLE = ENETUNREACH, 00044 LSN_HOST_UNREACHABLE = EHOSTUNREACH, 00045 LSN_TIMED_OUT = ETIMEDOUT, 00046 LSN_IN_USE = EADDRINUSE, 00047 LSN_FORCE_DWORD = 0x7FFFFFFF 00048 }; 00049 00057 class CPosixSock { 00058 public : 00059 // == Functions. 00065 static LSBOOL LSE_CALL InitNetwork(); 00066 00070 static LSVOID LSE_CALL ShutDownNetwork(); 00071 00077 static LSN_SOCKET LSE_CALL CreateUpdSocket(); 00078 00084 static LSVOID LSE_CALL CloseSocket( LSN_SOCKET _sSock ); 00085 00092 static LSBOOL LSE_CALL CheckSocket( LSN_SOCKET _sSock ); 00093 00100 static LSN_ADDRESS LSE_CALL LookUpAddress( const LSCHAR * _pcName ); 00101 00108 static LSBOOL LSE_CALL GetHostName( CString &_sReturn ); 00109 00119 static LSUINT32 LSE_CALL Bind( LSN_SOCKET _sSock, LSUINT16 _ui16Port, 00120 LSN_ADDRESS _aAddress = LSN_NO_ADDRESS ); 00121 00132 static LSUINT32 LSE_CALL SendTo( LSN_ADDRESS _aAddress, 00133 LSUINT16 _ui16Port, 00134 const LSVOID * _pvData, 00135 LSUINT32 _ui32Len, 00136 LSN_SOCKET _sSocket ); 00137 00148 static LSUINT32 LSE_CALL ReceiveFrom( LSN_SOCKET _sSocket, 00149 LSVOID * _pvData, 00150 LSUINT32 _ui32Len, 00151 LSN_ADDRESS &_aAddress, 00152 LSUINT16 &_ui16Port ); 00153 }; 00154 00155 } // namespace lsn 00156 00157 #endif // #ifndef LSE_WINDOWS 00158 00159 #endif // #ifndef __LSNPOSIXSOCK_H__