我正在編寫處理來自兩臺服務器的數據流的客戶端代碼A & B.所有三個節點位於同一本地子網上。我試圖創建如下所述定義的兩個套接字。爲什麼我不能連接兩個插座?
插座描述= [本地/客戶端IP]:[本地/客戶端端口]:[遠程/服務器IP]:[遠程/服務器端口]
插座連接到一個參考:[192.168.40.10]: [50002]:[192.168.40.60]:[50002]
插座連接到B:[192.168.40.10]:[50002]:[192.168.40.61]:[50002]
當我嘗試打開第二個套接字,我得到一個例外,即「每個套接字地址aka協議/網絡地址/端口只能使用一次」。我想我可以定義一個不同的套接字,因爲即使本地IP地址和端口號相同,遠程IP地址也是不同的。我別無選擇,只能通過同一個套接字使用兩個數據流嗎?
當你是客戶,見好就收LocalPort屬性空。 Windows會選擇一個免費的。只有當您將套接字設置爲偵聽模式時,localport纔是必需的。 –
我想我需要配置兩臺服務器(因爲我有這種能力)使用目標ip 192.168.40.10並設置每個服務器使用一個唯一的目標端口。然後我可以打開兩個在客戶端的兩個線程上運行的套接字,並從每個服務器流接收數據包。這使我可以重複使用我編寫的相當數量的代碼來處理單個流。 –