嗨,所有的专家都在那里:)
这是我的第一个问题。
问题描述:
我必须编写市场数据Feed Handler。这将是一个Windows服务,将使用两个套接字。
套接字A:用于订阅应用程序和Feed Handler之间的通信(Feed Handler将接受连接请求和项目请求)。
插槽B:用于Feed Handler和外部市场数据提供商之间的通信,如Reuters / Bloomberg。
在这两种情况下,请求/响应将使用相同的端口。
注意:来自外部系统的数据量很低(外部系统仅发送此时已订阅的信息)。 但是稍后我们可能想要扩展它,一些提供商会抛出所有数据,Feed Handler必须根据订阅在本地过滤掉。
我的问题:
编辑1:在阅读了几篇关于Winsock的教程之后,我打算将事件对象用于异步行为。
这里需要关注的是,单个线程应该侦听传入的客户端连接(接受它们),还要连接到其他服务器,然后在两个不同的端口上发送/接收。
线程A. 1)收听传入的连接。 (连续) 2)从连接的客户端接收订阅/取消订阅请求。 (很少) 3)连接到外部服务器(仅限一次)。 4)将来自客户端的请求转发到外部服务器。 (很少) 5)从外部服务器接收数据。 (连续) 6)将此数据发送回连接的客户端。 (连续)
我的问题是,使用异步I / O模型,单个线程可以同时充当客户端和服务器吗?
提前致谢。 迪帕克
答案 0 :(得分:0)
最简单的线程模型似乎是单线程同步。如果需要为提供程序实现过滤器,请将其实现为socket-in / socket-out单独进程。