2011-03-23 108 views
2

我有一個客戶端嘗試使用套接字s1連接到我的主服務器。客戶端需要繼續嘗試使用s1連接到主服務器,但同時連接並繼續向我的輔助服務器發送「嘗試」消息。創建2個套接字,重用端口併爲這2個套接字創建2個綁定是否是一個好主意,或者有更好的方法來實現這一點?這是一個客戶端和使用C套接字。謝謝。從單個客戶端套接字連接到多個服務器C

回答

5

如果您的程序是多個服務器的客戶端,請爲每個服務器使用一個套接字。根本不需要bind作爲客戶端套接字,只需要connect

+0

Thanks.Wasn不確定bind.Now每個服務器使用1個套接字。 – user629034 2011-03-23 07:38:23

1

我想你是使用TCP套接字(不是嗎?)。所以需要一個用於連接的套接字。 然後重用端口並不那麼重要,因爲您的應用程序是一個客戶端應用程序,它是啓動連接的部分。任何出站端口應該都可以。

1

因爲每個面向流的套接字只能調用connect(2)一次,所以您確實必須至少使用兩個套接字進行兩個同時連接(或連接嘗試)。

您不需要bind(2)客戶端端口上的任何東西,除了奇怪的情況。 (我正在考慮Sun RPC portmapper守護進程,但是幸運的是我已經關注了portmapper守護進程已經有近十年的時間了,在使用主機認證方法時,bind(2)也需要rlogin作爲客戶端,這太可怕了。)

相關問題