2013-02-11 18 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

最簡單的線程模型似乎是單線程的同步。如果您需要爲提供者實現過濾器,請將其作爲套接字/套接字獨立進程實現。

相關問題