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 }