Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 3, 2007, 12:28:19 AM (16 years ago)
Author:
scheusso
Message:

PacketDecoder:

Extended Class to make inheriting easier…

-added virtual function, that can be implemented by lower classes

Client:

Added some function, changed some things (input, gamestate, connectionhandling)

Server:

same as client

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/FICN/src/network/ConnectionManager.cc

    r352 r369  
    106106      return false;
    107107    if(enet_host_service(server, event, NETWORK_SEND_WAIT)>=0)
     108      return true;
     109    else
     110      return false;
     111  }
     112 
     113  bool ConnectionManager::sendPackets(){
     114    ENetEvent event;
     115    if(server==NULL)
     116      return false;
     117    if(enet_host_service(server, &event, NETWORK_SEND_WAIT)>=0)
    108118      return true;
    109119    else
     
    117127    ENetEvent event;
    118128    server = enet_host_create(&bindAddress, NETWORK_MAX_CONNECTIONS, 0, 0);
    119     if(server==NULL)
     129    if(server==NULL){
    120130      // add some error handling here ==========================
    121131      quit=true;
     132      return;
     133    }
    122134
    123135    while(!quit){
     
    143155      }
    144156    }
     157    disconnectClients();
    145158    // if we're finishied, destroy server
    146159    enet_host_destroy(server);
     160  }
     161 
     162  void ConnectionManager::disconnectClients(){
     163    bool disconnected=false;
     164    ENetEvent event;
     165    ClientList *temp=client;
     166    while(temp!=NULL){
     167      enet_peer_disconnect(temp->event->peer, 0);
     168      while( !disconnected && enet_host_service(server, &event, NETWORK_WAIT_TIMEOUT) > 0){
     169        switch (event.type)
     170        {
     171          case ENET_EVENT_TYPE_NONE:
     172          case ENET_EVENT_TYPE_CONNECT:
     173          case ENET_EVENT_TYPE_RECEIVE:
     174            enet_packet_destroy(event.packet);
     175            break;
     176          case ENET_EVENT_TYPE_DISCONNECT:
     177            disconnected=true;
     178            break;
     179        }
     180      }
     181      temp = temp->next;
     182      disconnected=false;
     183    }
     184    return;
    147185  }
    148186
Note: See TracChangeset for help on using the changeset viewer.