2011-12-20 79 views
3

我創建了當前能夠在服務器和客戶端之間交換單個數據包的異步庫。現在我正試圖設計一種機制,以「請求 - 響應」方式處理數據包。請求 - 使用異步.Net套接字庫的響應模式

更精確地讓我們看一下這樣的場景:

  1. 客戶端發送GiveMeFile
  2. 服務器接收它,並
  3. 客戶端收到此rssponse並保存HereIsYourFile響應數據包即刻回覆文件

在步驟2.重要的是讓客戶期待迴應,並且這個回覆必須在特定的時間內收到。

我在考慮某種類型的「預期」響應隊列,這將清除每個收到的響應,但我不確定這是否是一種好方法。

你有什麼建議如何實現異步請求響應模式?

+0

你應該用一些細節來改進你的問題:你的命令必須是多功能的或者是常量的,例如,我有「giveMeInt」和「giveMeString」命令,如果我想實現更多,我只需將「giveMeBytes」添加到可能的命令列表中並對此作出響應。這使得理解哪條路更容易。 – 2012-07-29 15:42:28

回答

0

我已經使用SocketAsyncEventArgs實現了高性能TCP服務器。你可以圍繞谷歌,但有一個不那麼古老的文章here這仍然是有用的。 SocketAsyncEventArgs完全爲我設計了一個併發的TCP服務器。