聊天室服务器的主函数:
#include "chatserver.hpp"
#include "chatservice.hpp"
#include <iostream>
#include <signal.h>
using namespace std;
//处理服务器ctrl+c结束后,进行重置user的状态信息
void resetHandler(int)
{
ChatService::instance()->reset(); //调用重置函数
exit(0);
}
int main(int argc, char **argv)
{
if (argc < 3)
{
cerr << "command invalid! example: ./ChatServer 127.0.0.1 6000" << endl;
exit(-1);
}
//解析命令行输入的ip和端口号
char *ip = argv[1];
uint16_t port = atoi(argv[2]);
//当发生程序终止(SIGINT)信号时,调用resetHandler方法
signal(SIGINT, resetHandler);
EventLoop loop;
InetAddress addr(ip, port);
ChatServer server(&loop, addr, "ChatServer");
server.start();
loop.loop();
return 0;
}