"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSNetLib/Src/WinSock/LSNWinSock.h

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__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator