【发布时间】:2013-11-04 03:37:36
【问题描述】:
我正在尝试重写我当前的项目以包含更多功能和稳定性,并且需要一些帮助来设计它。这是它的主要内容(适用于 linux):
- TCP_SERVER 接收连接(验证数据包)
- TCP_SERVER 启动一个新的(线程/分叉)来处理新客户端
- TCP_SERVER 将从客户端接收许多数据包 > 将添加到循环缓冲区中
- 将为该客户端创建一个单独的线程来处理这些数据包并构建对象列表
- 应创建另一个线程以将部分对象列表发送到另一个客户端
将所有处理分成线程的原因是因为服务器会收到很多数据包并且处理将无法跟上(这需要快速,因为它的时间敏感)(我不确定 tcp 是否会丢弃数据包如果内部缓冲区变得太大?),另一个线程发送到另一个客户端以尽可能保持处理速度。
所以对于每个新连接,应该创建 3 个线程。 1 接收数据包,1 处理它们,1 将处理后的数据发送到另一个客户端(从技术上讲,这是同一个人/IP,只是在不同的设备上)
我需要帮助设计这个,如何构建这个,使用什么(forks/threads),使用什么库。
【问题讨论】:
标签: c++ multithreading sockets networking tcp