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

发布于 2025-01-07 17:18:25 字数 339 浏览 1 评论 0原文

我有一个使用二进制套接字的 flash 聊天客户端和一个使用套接字和 libev 的 C/linux 服务器。我已经完成了发送和接收消息的所有工作,但现在我正在执行更复杂的步骤。

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

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

I have a chat client in flash using binary sockets and a server in C/linux using sockets and libev. I have everything working properly for sending and receiving messages but now I am on to the more complicated step.

For my chat server I will be grouping users into groups of 15. The server will need to have a unique ID for each user and be able to quickly determine which group a user is in to broadcast the message to the other 14 users. I'm thinking the server could use the file descriptor for each socket connection as those should all be unique.

The problem is this: you get a read event fired from libev for a certain file descriptor. You now need to quickly determine which group this FD belongs to and then broadcast the message to everyone in the group. What is the best data structure for this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慕烟庭风 2025-01-14 17:18:25

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

HashTable.
Have each user have a groupID associated with it and the hashTable will use groupIDs as keys and arrays of UserIDs as values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文