int main(int argc, char* argv[]) { std::ofstream logFile("serverLogFile.txt", std::ofstream::trunc); Logger::addOutput(Logger::Level::TRACE, logFile); Logger::addOutput(Logger::Level::INFO, std::cout); Logger::log(Logger::Level::INFO, "Starting server"); TweakSettings::initializeMaster(); server.initialize(); server.run(); std::string input; std::cout << "> "; while (true) { if (!std::getline(std::cin, input)) break; std::transform(input.begin(), input.end(), input.begin(), ::tolower); if (input == "exit") break; else if (input == "send") server.sendTestData(); else if (input == "help") printHelp(); else if (input == "list") listUsers(); else if (input == "games") listGames(); else if (input == "pulse") server.sendPulseObject(); else printUnknownCommand(); std::cout << "> "; } server.shutdown(); TweakSettings::shutdown(); }
// get request from client socket void parseClientRequest(player p, char * buffer) { // socket closed if(readline(p->fd, buffer, MAXBUF-1) == 0) removeClient(p); else if(strlen(buffer) > 3 && buffer[3] == '#') { // new message #ifdef DEBUG printf("\r[DEBUG] : %s\n", buffer); #endif buffer[3] = 0; // broadcast message if(strcmp(buffer, CMD_MESSAGE) == 0) broadcastMessage(p, buffer); // broadcast action else if(strcmp(buffer, CMD_ACTION) == 0) broadcastMessage(p, buffer); // bind to a game else if(strlen(buffer+4) > 6 && buffer[9] == '#' && strcmp(buffer, CMD_BIND) == 0) bindToGame(p, buffer); // create a game else if(strlen(buffer+4) > 6 && buffer[9] == '#' && strcmp(buffer, CMD_CREATE_GAME) == 0) createGame(p, buffer); // list existing games else if(strcmp(buffer, CMD_LIST) == 0) listGames(p); // Get available id to creage a game else if(strcmp(buffer, CMD_CREATE) == 0) getAvailableId(p); // Create new socket to send a file else if(strlen(buffer+4) > 7 && buffer[10] == '#' && strcmp(buffer, CMD_FILE) == 0) transfer_file(p, buffer); // Register as a Game Master else if(strcmp(buffer, CMD_REGISTER_GM) == 0) register_game_master(p); // Send a message to game master else if(strcmp(buffer, CMD_SEND_GM) == 0) send_to_game_master(p, buffer); // Send a message to a specific player else if(strcmp(buffer, CMD_SEND_TO_PLAYER) == 0) send_to_player(p, buffer); else senderror(p->fd, NULL, ERR_NOT_RECOGNIZED); } else { #ifdef DEBUG printf("\r[DEBUG] : %s\n", buffer); #endif senderror(p->fd, NULL, ERR_NOT_RECOGNIZED); } }