2013-02-11 37 views
0

嗨,所有的专家都在那里:)应该使用哪种线程模型来创建饲料处理程序或适配器

这是我的第一个问题。

问题描述:

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

套接字A:用于订阅应用程序和馈送处理程序(馈送处理程序将接受连接请求和项目请求)之间的通信。

套接字B:饲料处理程序和外部市场数据提供商之间的通信,如路透社/彭博。

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

注:从外部系统的数据来的体积为低(外部系统将只发送已认购的信息,在这一点的时间)。 但是后来我们可能想要扩展它,一些提供程序会抛出所有数据,并且Feed Handler必须根据订阅在本地过滤掉。

我的问题:

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

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

关注的点这里要说的是,一个单一线程监听传入客户端连接(接受它们),也连接到另一台服务器,依次发送/ recv的两个不同的端口。

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

我的问题是可以在单个线程同时作为客户端和服务器,使用异步I/O模型?

在此先感谢。 迪帕克

回答

0

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

相关问题