gpt4 book ai didi

c++ - 配对 socket

转载 作者:太空宇宙 更新时间:2023-11-04 09:55:33 30 4
gpt4 key购买 nike

我有一个服务器程序(适用于所有三个主要操作系统),它是用 C++ 创建的,它努力连接两个陌生人进行通信。我当前的模型似乎已经过时了,我只是想知道是否有更好的方法来为客户提供服务。

-服务器收到连接请求
-检查禁令
- 为这个套接字启动线程


[线程简单地循环执行这些步骤]

-确认与合作伙伴的连接(检查经理)
-如果来自管理类的未连接请求伙伴
- 在我的套接字上接收 <- 客户端每 2 秒左右发送一次保持事件数据包
-on 断开连接通知管理器,并关闭线程。


[经理类是这样工作的]

-在我的 sockPairs vector 上添加 socket: push_back
- 请求伙伴:寻找未连接的sockPair,如果不存在则创建新的sockPair,一旦连接,标记sockPair以移除,如果已经标记,则移除它。
- 删除套接字:将标志添加到我已断开连接的合作伙伴的经理 ID
-检查套接字:检查断开连接的管理器ID


我认为 map 会更有效率,但我并不乐观,因为我从未与他们合作过,您认为我还应该改变什么?我希望能够使用此模型为 200 个客户提供服务,我真的不确定当前模型是否可以处理...

最佳答案

每个连接一个线程不会缩放。您需要使用一种机制,例如 select()、poll()、epoll()、WSAAsyncSelect() 或任何其他可以让您查询一组套接字的事件的机制。然后按顺序处理每个套接字,然后重复。

关于c++ - 配对 socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5221845/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com