00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef __WORLDSERVER_H
00024 #define __WORLDSERVER_H
00025
00026 #include "uas.h"
00027
00028 class cWorldServer
00029 {
00030 friend class cMasterServer;
00031
00032 public:
00033
00034 static void Initialize( short nPort, WORD wLogicalID, DWORD dwSendCRCSeed, DWORD dwRecvCRCSeed )
00035 {
00036 UpdateConsole( " Starting World Server ... " );
00037
00038 SOCKADDR_IN saSockAddr;
00039 saSockAddr.sin_family = AF_INET;
00040 saSockAddr.sin_port = htons( nPort );
00041 saSockAddr.sin_addr.s_addr = INADDR_ANY;
00042
00043 m_wLogicalID = wLogicalID;
00044 m_dwSendCRCSeed = dwSendCRCSeed;
00045 m_dwRecvCRCSeed = dwRecvCRCSeed;
00046
00047 m_Socket = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
00048 if ( !m_Socket )
00049 {
00050 UpdateConsole( "socket( ) failed!\r\n" );
00051 return ;
00052 }
00053
00054 if ( bind( m_Socket, (struct sockaddr *)&saSockAddr, sizeof( SOCKADDR_IN ) ) )
00055 {
00056 UpdateConsole( "bind( ) failed!\r\n" );
00057 return ;
00058 }
00059
00060 UpdateConsole( "success.\r\n" );
00061 }
00062
00063 static void Halt( )
00064 {
00065 closesocket( m_Socket );
00066 UpdateConsole( " World Server: closing socket ...\r\n" );
00067 }
00068
00069 protected:
00070 static DWORD m_dwSendCRCSeed;
00071 static DWORD m_dwRecvCRCSeed;
00072 static WORD m_wLogicalID;
00073 static SOCKET m_Socket;
00074 };
00075
00076 #endif // #ifndef __WORLDSERVER_H