我有一個自定義TCP代理服務器監聽端口5888(虛擬端口)。代理服務器偵聽傳入的連接。當代理收到某些頁面的HTTP請求時,它應該將其中繼到端口80上的主服務器。對於其他頁面請求,代理服務器需要在端口8081上向主服務器發送數據。使用異步套接字實現TCP代理服務器線程
端口80被使用以服務HTML頁面,因爲端口8081用於將數據流式傳輸到客戶端。
Client --> Proxy(TCP Proxy Server) --> MainServer
Client <-- Proxy(TCP Proxy Server) <-- MainServer
我已經使用異步編程模型(BeginXX和EndXX)實現了代理。代理工作正常。連接大約10個客戶端到這個代理我沒有問題。
現在我想在代理中實現線程,以便可以有300多個同時連接到代理的客戶端。考慮到Async編程模型(異步套接字),實現此線程的最佳方法是什麼?
感謝您的回覆。我正在使用Visual Studio 2010,即使用BeginXX和EndXX的異步模型。我不想爲了線程而使用線程 - 我唯一擔心的是程序是否會處理來自客戶端的300個同時連接。 – NewUnhandledException
@LivNow我建議這是你需要測試的東西,而不是優化可能不成問題的東西。如果你所做的只是用光邏輯複製流,我看不到任何需要在讀操作的回調以外的任何地方執行工作。只要確保你完全保持對讀寫IO的完全異步,所以你永遠不會阻塞長時間運行/阻塞操作的線程池,你將超過300。 – spender