2014-07-08 28 views
2

我在使用數據報套接字設計我的應用程序時面臨一個問題。我的應用程序需要使用udp連接與不同的服務器進行通信。現在我不確定以下哪一項會很好。是否有任何以下任何優勢(通過表現或其他措施)?還是有更好的選擇?使用相同套接字或不同套接字進行多重連接的區別

選項1

創建單個數據報插座,並建立一個單一的線程接收的該數據。發送到不同的服務器時設置數據報數據包的地址。和在接收線程檢查地址和處理數據相應

選項2

創建不同的數據報套接字與服務器進行通信。使用socket.connet()連接到相關的服務器。併爲每個套接字創建線程來接收數據。

N.B.我實際上是在一個android應用上工作。如果您有任何疑問,您可以在評論中提出要求

+0

您是否需要同時或一次與不同的服務器進行通信? –

+0

同時與多個服務器通信..但一個服務器的負載較高 – stinepike

回答

2

除非我們正在談論100000個連接,否則我會爲每個線程創建一個套接字。它加快了應用程序的速度,並保證了套接字的線程安全,並且保存的數據不會混淆。 然而,最重要的是,如果一個通道失敗或延遲會變高,它將不會影響其他通道(插座)。

缺點是您消耗的資源更多。 全部取決於應用程序的目的。

+0

我只需要6/7套接字..數據將是大數額。 – stinepike

+0

我會假設大的ammount就像100mb>並且(假設)我們沒有1000MB/S以太網,我會創建2,3個工作線程並執行傳輸。沒有沉重的資源消耗和延遲瓶頸的最小化。如果這不夠靈活,讓用戶配置我們可以創建多少個並行連接。 – Antoniossss

0

我的意見是你可以創建一個單一的套接字,因爲創建更多的套接字會降低你的應用程序。