2011-12-04 306 views
-3

我已經瀏覽了很多頁面和論壇,但仍然不確定這一點。我正在寫一個項目,客戶端讀取一個包含數字的txt文件,並將這些數字發送給將執行一些計算並將結果發送回客戶端的服務器。是否可以使用udp將客戶端連接到多個服務器?如果是這樣,解釋會很好。我不認爲我完全理解udp。我也用c寫這個。從一個客戶端連接到多個服務器的原因是因爲我需要使用1,2,4和8個服務器運行客戶端(向每個服務器分配數字,直到沒有剩餘數量)並比較運行時間。任何快速的幫助,將不勝感激。udp - 客戶端到多個服務器

回答

1

您可以將UDP用於具有相同套接字的多個服務器。可能最簡單的方法是讓客戶端爲每個連接分配一個會話ID,在每個發送的數據報中包含會話ID,並讓服務器在每個發送的回覆數據報中返回該會話ID。不要使用IP地址來區分數據包來自哪個服務器,因爲服務器可能有多個IP地址,從而使其不可靠。

只要記住,如果你使用UDP,你不會得到任何TCP添加的東西。如果你需要他們中的任何一個,你需要自己做。如果你需要全部或大部分,TCP是一個更好的選擇。 TCP的功能:

  • 會話建立

  • 會話拆毀

  • 重發

  • 發送起搏

  • 回退,然後重試

  • 亂序檢測和重排

  • 滑動窗

  • 致謝

的如果您需要任何這些東西並選擇使用UDP,你需要做他們自己。