2
我將創建多個同步客戶端。我需要關於下面的代碼的一些解釋。 當我創建一個像下面這樣的套接字並調用連接網絡層發生的事情時。同步多套接字客戶端澄清
我相信當我們創建一個套接字並調用connect時,TCP/IP連接將在客戶套接字和服務器套接字之間建立一條隧道。
一旦此發件人(套接字)連接到服務器,該客戶端&服務器之間將有一個唯一的隧道。 如果我創建另一個客戶端,它將在它們之間有另一個唯一的隧道。
萬一如果我們得到一個錯誤,客戶端沒有連接,總是我們應該使用現有的套接字(發送者)重新連接,那麼我們將訪問我們有相同的數據/連接。 我們不應該創建一個新的套接字,然後我們將有一個新的隧道,我們將丟失以前的連接和數據。
Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
sender.Connect(remoteEndpoint)
請說明是否我錯了。
我有幾個問題。 1.我們應該嘗試只在初始階段失敗時重新連接套接字(在創建套接字對象之後)2.我正在創建單獨的套接字對象,以便在客戶端使用不同的線程提供不同的請求。然後,服務器如何知道應該向哪個客戶端發送數據。因爲所有的客戶端都有相同的端點。 – user3597233 2014-11-02 17:41:33
我不明白你的意思是(1)。關於(2):只要保留對適當套接字對象的引用並在其上發送和接收即可。操作系統負責其餘部分。 – usr 2014-11-02 17:54:31
還有一個問題,所以我的(2)點是正確的,我應該爲每個請求創建新的套接字。 – user3597233 2014-11-02 18:57:28