c - 用于在聊天服务器中管理组的数据结构

标签 c linux data-structures

我有一个使用二进制套接字的闪存聊天客户端和一个使用套接字和 libev 的 C/linux 服务器。我已经为发送和接收消息做好了一切工作,但现在我要进行更复杂的步骤。

对于我的聊天服务器,我会将用户分成 15 人一组。服务器需要为每个用户提供一个唯一的 ID,并且能够快速确定一个用户属于哪个组,以便将消息广播给其他 14 个用户.我认为服务器可以为每个套接字连接使用文件描述符,因为它们都应该是唯一的。

问题是这样的:您从 libev 中为某个文件描述符触发了一个读取事件。你现在需要快速判断这个FD属于哪个组,然后将消息广播给组内的所有人。 这个问题的最佳数据结构是什么?

最佳答案

哈希表。 让每个用户都有一个与之关联的组 ID,哈希表将使用组 ID 作为键,使用 UserID 数组作为值。

关于c - 用于在聊天服务器中管理组的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9372679/

相关文章:

无法将 int 转换为 int。数组 C

c - 如何测试一个点是否位于其表面由点云定义的 3d 形状内?

linux - 如何在 Perl 中确定文件

algorithm - 我们可以将 Bellman-Ford 算法应用于无向图吗?

algorithm - 在小内存(小于 50 MB)中存储大量二进制数的最佳方法是什么

c - malloc,免费 : error invalid next size(fast)

c - 使用命令行参数时出现段错误

c - while 循环未按预期运行

linux - 带有 env shebang 的脚本卡在 Linux 上

c# - 构建表示 Rubric 的对象的正确方法是什么