示例#1
0
文件: main.cpp 项目: sokie/networking
int main(int argc, char **argv) {
    std::string input;
    std::string rest;

    ChatServer* server = NULL;
    ChatClient* client = NULL;

    if (SDL_Init(0) == -1) {
        std::cerr << "SDL_Init: " << SDL_GetError() << std::endl;
        return 1;
    }
    if (SDLNet_Init() == -1) {
        std::cerr << "SDLNet_Init: " << SDLNet_GetError() << std::endl;
        return 1;
    }

    switch (argc) {
        case 2:
            server = new ChatServer((unsigned short)(atoi(argv[1])));
            while (true) {
                getline(std::cin, input);
                if (input == "quit") {
                    server->push(new LogoutRequest());
                    break;
                }
            }
            delete server;
            break;
        case 3:
            std::cout << "Username: "******"quit") {
                    client->push(new LogoutRequest());
                } else {
                    client->push(new MessageRequest(input));
                }
            }
            delete client;
            break;
        default:
            std::cout << "Usage:" << std::endl
                      << "\tdemo hostname port\t(start client)" << std::endl
                      << "\tdemo port\t\t(start server)" << std::endl;
    }

    SDLNet_Quit();
    SDL_Quit();
}