我在一个节点上有一个“管理器”进程,以及几个工作进程。管理器是实际的服务器,它持有到客户端的所有连接。管理器接受所有传入的数据包并将其放入队列中,然后工作进程将数据包从队列中拉出,对其进行处理并生成结果。它们将结果发送回管理器(通过将结果放入另一个由管理器读取的队列中),但这就是我遇到的问题:如何将结果发送到特定的套接字?在单个进程上处理数据包时,这很容易,因为当您收到数据包时,只需获取上下文中的“传输”对象即可对其进行回复。但是我如何用我正在使用的方法做到这一点呢?
发布于 2009-01-20 06:00:43
听起来你可能需要在你的'event‘对象中保留对传输(或协议)的引用,以及刚刚在该协议上传入的字节。这样,在连接上传入的响应将在同一连接上传出。
如果事情不需要串行处理,也许您应该考虑设置可以并行处理数据的functor,以消除排队的需要。请记住,您需要保护代码的关键部分。
编辑:从您关于评估服务器设计的其他问题来看,对于您的情况,并行处理似乎是不可能的,所以我的第一个建议是成立的。
https://stackoverflow.com/questions/460068
复制相似问题