0

嗨,所有的专家都在那里:)

这是我在这里的第一个问题。

问题描述 :

我必须编写一个市场数据馈送处理程序。这将是一个 Windows 服务,将使用两个套接字。

Socket A:用于订阅应用程序和 Feed Handler 之间的通信(Feed Handler 将接受连接请求和项目请求)。

Socket B:用于 Feed Handler 和外部市场数据提供商之间的通信,例如路透社/彭博社。

在这两种情况下,请求/响应都将使用相同的端口。

注意:来自外部系统的数据量较低(此时外部系统只会发送已订阅的信息)。但是稍后我们可能想要扩展它,一些提供程序会抛出所有数据,并且 Feed Handler 必须根据订阅在本地过滤掉。

我的问题:

  1. 我应该使用什么线程模型?
  2. 我应该使用哪种 I/O 策略?
  3. 记住这两种情况,我应该创建单独的请求/响应线程吗?

编辑 1:在阅读了一些关于 Winsock 的教程后,我打算使用事件对象进行异步行为。

这里需要关注的是,一个线程应该监听传入的客户端连接(接受它们)并连接到其他服务器,然后在两个不同的端口上发送/接收。

线程 A 1) 监听传入连接。(续) 2) 接收来自已连接客户端的订阅/取消订阅请求。(很少) 3) 连接到外部服务器(仅限一次)。4) 将来自客户端的请求转发到外部服务器。(很少) 5) 从外部服务器接收数据。(连续) 6)将此数据发送回连接的客户端。(连续的)

我的问题是一个线程可以同时充当客户端和服务器,使用异步 I/O 模型吗?

提前致谢。迪帕克

4

1 回答 1

0

最简单的线程模型似乎是单线程同步的。如果您需要为提供者实现过滤器,请将其实现为套接字输入/套接字输出单独的进程。

于 2013-02-11T08:39:03.200 回答