2

我在一个节点上有一个“管理器”进程,还有几个工作进程。管理器是拥有与客户端的所有连接的实际服务器。管理器接受所有传入的数据包并将它们放入队列中,然后工作进程将数据包从队列中拉出,处理它们并生成结果。他们将结果发送回管理器(通过将它们放入另一个由管理器读取的队列中),但这是我卡住的地方:如何将结果发送到特定的套接字?在单个进程上处理数据包时,这很容易,因为当您收到一个数据包时,您只需在上下文中抓取“传输”对象即可回复它。但是我将如何使用我正在使用的方法来做到这一点?

4

1 回答 1

3

听起来您可能需要在“事件”对象中保留对传输(或协议)的引用以及刚刚进入该协议的字节。这样,来自连接的响应会在同一个连接上输出。

如果不需要串行处理事情,也许您应该考虑设置可以并行处理数据的函子以消除排队的需要。请记住,您需要保护代码的关键部分。

编辑:从您关于评估服务器设计的其他问题来看,您的情况似乎无法并行处理,所以我的第一个建议是有效的。

于 2009-01-20T06:00:42.790 回答