嗨,所有的专家都在那里:)
这是我在这里的第一个问题。
问题描述 :
我必须编写一个市场数据馈送处理程序。这将是一个 Windows 服务,将使用两个套接字。
Socket A:用于订阅应用程序和 Feed Handler 之间的通信(Feed Handler 将接受连接请求和项目请求)。
Socket B:用于 Feed Handler 和外部市场数据提供商之间的通信,例如路透社/彭博社。
在这两种情况下,请求/响应都将使用相同的端口。
注意:来自外部系统的数据量较低(此时外部系统只会发送已订阅的信息)。但是稍后我们可能想要扩展它,一些提供程序会抛出所有数据,并且 Feed Handler 必须根据订阅在本地过滤掉。
我的问题:
- 我应该使用什么线程模型?
- 我应该使用哪种 I/O 策略?
- 记住这两种情况,我应该创建单独的请求/响应线程吗?
编辑 1:在阅读了一些关于 Winsock 的教程后,我打算使用事件对象进行异步行为。
这里需要关注的是,一个线程应该监听传入的客户端连接(接受它们)并连接到其他服务器,然后在两个不同的端口上发送/接收。
线程 A 1) 监听传入连接。(续) 2) 接收来自已连接客户端的订阅/取消订阅请求。(很少) 3) 连接到外部服务器(仅限一次)。4) 将来自客户端的请求转发到外部服务器。(很少) 5) 从外部服务器接收数据。(连续) 6)将此数据发送回连接的客户端。(连续的)
我的问题是一个线程可以同时充当客户端和服务器,使用异步 I/O 模型吗?
提前致谢。迪帕克