网络聊天应用开发详解
1. 服务器端处理
在服务器端,需要处理客户端的各种命令,其中包括 QUIT 命令。以下是处理 QUIT 命令的代码:
int quit_command(const string &nickname, string &msg)
{
map<string, client_t>::iterator client_iter;
pthread_mutex_lock(&client_list_mutex);
client_iter = client_list.find(nickname);
if (client_iter == client_list.end()) {
msg = "999 UNKNOWN";
} else {
client_list.erase(client_iter);
for (client_iter = client_list.begin(); client_iter != client_list.end();
client_iter++) {
(*client_iter).second.outbound.push_back("QUIT " + nickname);
}
msg = "100 OK";
}
pthread_mutex_unlock(&client_list_mutex);
return 1;
}
<
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



