我有一个使用二进制套接字的闪存聊天客户端和一个使用套接字和 libev 的 C/linux 服务器。我已经为发送和接收消息做好了一切工作,但现在我要进行更复杂的步骤。
对于我的聊天服务器,我会将用户分成 15 人一组。服务器需要为每个用户提供一个唯一的 ID,并且能够快速确定一个用户属于哪个组,以便将消息广播给其他 14 个用户.我认为服务器可以为每个套接字连接使用文件描述符,因为它们都应该是唯一的。
问题是这样的:您从 libev 中为某个文件描述符触发了一个读取事件。你现在需要快速判断这个FD属于哪个组,然后将消息广播给组内的所有人。 这个问题的最佳数据结构是什么?
最佳答案
哈希表。 让每个用户都有一个与之关联的组 ID,哈希表将使用组 ID 作为键,使用 UserID 数组作为值。
关于c - 用于在聊天服务器中管理组的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9372679/