00001 #include "server.h" 00002 00003 GameServer::GameServer () : netMessageChannel() { 00004 init_socket(SERVER_LISTEN_PORT); 00005 } 00006 00007 GameServer::GameServer(int p) : netMessageChannel() { 00008 init_socket(p); 00009 } 00010 00011 GameServer::~GameServer() { 00012 close(); 00013 } 00014 00015 void GameServer::handleMessage(const netMessage &msg) { 00016 fprintf(stderr, "got a msg from %i type %i\n", *msg.getFromID(), 00017 *msg.getType()); 00018 } 00019 00020 bool GameServer::init_socket(int p) { 00021 if (!open(false)) 00022 return false; 00023 setBlocking(false); 00024 if (bind(SERVER_BIND_ADDRESS, p) == -1) 00025 return false; 00026 return true; 00027 } 00028 00029 void GameServer::free_data() { 00030 userData* d; 00031 while (pre_connect.getNumNodes() > 0) { 00032 d = (userData*) removeNode(0); 00033 free(d); 00034 } 00035 while (connected.getNumNodes() > 0) { 00036 d = (userData*) removeNode(0); 00037 free(d); 00038 } 00039 }