我試圖從概念上通過一個客戶端 - 服務器套接字應用程序的模型工作,我正在寫在C#(客戶端和服務器)。我的服務器需要一次處理多個客戶端,最好是同時處理來自客戶端的多個請求。我已經爲我的通信制定了一個容器,我將在每封郵件的開頭髮送一個固定長度的郵件頭,其中包含郵件的長度(包括其他內容)。我有一些在C#中使用套接字編程的經驗,所以我很喜歡使用異步套接字。C#客戶端 - 服務器協議/模型問題
我在概念上遇到的主要問題是我需要客戶端和服務器都能夠隨時接收消息。客戶端將建立連接,並保持「登錄狀態」(如IM客戶端),並且需要在任意時間接收數據並在任意時間發出請求。作爲我的協議的一部分,我還希望接收每個請求的響應(無論是從服務器到客戶端還是從客戶端到服務器)。
我希望能夠使用一個單一的套接字,如果可能的話。我相信我可以使用兩個套接字來完成這項工作,一個用於製作服務器 - >客戶端請求,另一個用於客戶端 - >服務器請求,但我不想處理兩個端口/連接的額外複雜問題。但是,使用單個套接字時,我不確定如何管理髮送請求並在可以交織時獲取響應。
我在我的搜索中找不到任何類似服務器或客戶端的示例。感謝任何提供任何ide的人。
是的。但假設服務器從客戶端請求一些需要一段時間的東西。與此同時,客戶端向服務器請求了一些東西。在我的服務器的BeginReceive中,我如何知道這些傳入數據是來自客戶端的請求還是對服務器請求的響應?這就是我正在努力的。我掌握了異步套接的基礎知識。謝謝。 – Jarrod 2009-05-19 21:46:25