2013-04-07 84 views
0

如果我要實現一個服務器來處理同時連接多個客戶端會更好地使用TCP?對於多線程服務器,TCP是否比UDP更好?

沒有考慮效率(我知道UDP比較快,但不可靠)。

在UDP中,每個客戶端連接都不能有套接字? 因爲在UDP中,套接字僅由目標端口號標識(對吧?)。

在Java中,我知道很容易創建一個多線程服務器來同時處理TCP中的多個客戶端。但可以在UDP中完成嗎?我想這會很複雜。

我只是想在這裏瞭解UDP(我不想實際實現任何東西)。

+0

爲什麼要用UDP更難?在「不考慮效率」的同時,你對「更好」的定義是什麼? – mb21 2013-04-07 14:58:08

回答

0

這取決於你正在開發什麼樣的服務器。如果您需要您的客戶端保持連接並準備好從服務器接收數據(例如推送服務),則應使用TCP來實現它。如果你想實現一個簡單的請求響應服務,那麼UDP是更好的選擇。

+0

此外,您的客戶可以輕鬆處理丟失的郵件嗎? UDP不保證傳送,所以客戶端必須弄清楚是否丟失了一條消息並處理它。 TCP保證交付。 – Fred 2013-04-07 15:01:55