1 #include "..\include\raMain.h" 19 sizeof(m_SocketAddress));
29 RINFO(
"Server gestoppt");
46 free(m_ClientSockets);
50 m_ClientSockets = (
raSocket**)malloc(MaxClients*
sizeof(m_ClientSockets));
51 m_MaxClients = MaxClients;
53 for(
int i = 0; i < MaxClients; i++)
55 m_ClientSockets[i] = NULL;
58 m_ListenSocket.bind(Port);
59 m_ListenSocket.listen();
60 RINFO(
"Server gestartet.\n");
62 OnSetup(Port, MaxClients);
66 m_ListenSocket.Stop();
71 m_ListenSocket.fdset(
false);
73 for(
int i=0; i < m_MaxClients; i++)
75 if(m_ClientSockets[i]) m_ClientSockets[i]->fdset(
false);
79 raSocket* pNewClient = m_ListenSocket.accept();
80 if(pNewClient != NULL)
82 OnClientConnect(pNewClient);
86 for(
int i=0; i < m_MaxClients; i++)
88 if(m_ClientSockets[i]) m_ClientSockets[i]->fdset(
true);
92 for(
int i=0; i < m_MaxClients; i++)
94 if(m_ClientSockets[i])
96 int iResult = m_ClientSockets[i]->Receive();
100 raString Buffer = m_ClientSockets[i]->GetBuffer();
102 OnRun(Buffer, iResult, i);
104 else if(iResult == 0)
106 OnClientDisconnect(m_ClientSockets[i], i);
118 m_ClientSockets[index] = Client;
static void fdzero(bool write)
bool SetNewClient(raSocket *Client, int index)
static void select(bool write)
void RAPI RERROR_INVALIDVALUE(raString x)
void RAPI RERROR_NULLPOINTER(raString x)
bool Send(LPCSTR Data, int Size)
void RAPI RINFO(raString x)
sockaddr_in m_SocketAddress
void Setup(int Port=28015, int MaxClients=10)