コード例 #1
0
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();
}
コード例 #2
0
ファイル: server.c プロジェクト: Aishuu/warhammerontheroad
// 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);
    }
}