Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 10, 2005, 6:48:01 PM (18 years ago)
Author:
rennerc
Message:

NetworkStream should now accept net connections

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/network/src/lib/network/network_stream.cc

    r6007 r6018  
    6666  this->networkProtocol = new NetworkProtocol();
    6767  this->connectionMonitor = new ConnectionMonitor();
     68  this->networkSockets.push_back( NULL );
     69  this->bActive = true;
    6870}
    6971
     
    111113void NetworkStream::processData()
    112114{
     115  printf("processData()");
     116  if ( this->type == NET_SERVER )
     117    this->updateConnectionList();
     118
    113119#if 0
    114120  int dataLength = 0;
     
    178184#endif
    179185}
     186
     187void NetworkStream::updateConnectionList( )
     188{
     189  //check for new connections
     190  NetworkSocket* tempNetworkSocket = serverSocket->getNewSocket();
     191
     192  if ( tempNetworkSocket )
     193  {
     194    int clientId;
     195    if ( freeSocketSlots.size() >0 )
     196    {
     197      clientId = freeSocketSlots.back();
     198      freeSocketSlots.pop_back();
     199      networkSockets[clientId] = tempNetworkSocket;
     200    } else
     201    {
     202      networkSockets.push_back(tempNetworkSocket);
     203      clientId = networkSockets.size();
     204    }
     205
     206    PRINTF(0)("New Client: %s", clientId);
     207    //TODO: start handshake
     208    //new Handshake(true, clientId);
     209  }
     210
     211
     212  //check if connections are ok else remove them
     213  for ( int i = 1; i<networkSockets.size(); i++)
     214  {
     215    if ( networkSockets[i] && !networkSockets[i]->isOk() )
     216    {
     217      //TODO: tell EntityManager that this player left the game
     218
     219      delete networkSockets[i];
     220      networkSockets[i] = NULL;
     221
     222      if ( i == networkSockets.size()-1 )
     223      {
     224        networkSockets.pop_back();
     225      }
     226      else
     227      {
     228        freeSocketSlots.push_back(i);
     229      }
     230    }
     231  }
     232
     233}
Note: See TracChangeset for help on using the changeset viewer.