2013-09-29 22 views
0

我需要在運行我的程序一遍又一遍地發出自己的IP到組播每臺計算機上,我需要每一臺計算機運行,以便能夠建立運行程序可用的主機列表。有沒有辦法在C#中使用UDP來做到這一點?使用UDP檢查可用主機?

+0

如果您計劃使用TCP然後把一個定時器在TCP客戶端PROGRAMM並嘗試連接到TCP服務器,如果沒有連接。並在TCP服務器端從遠程IP地址形式的套接字RemoteEndPoint。 – Rezoan

+0

@Rezoan這不是我的意思。我不想連接到服務器以獲取其IP。我需要獲得可用服務器的列表。 UDP是無連接的,我需要服務器來廣播它的IP,以便程序建立一個可用服務器列表。 – user2454031

+0

哦,明白了。我只是說你可以用這種方式完成。 – Rezoan

回答

0

你想要的是廣播不能進行多播。是的,這是可能的,你需要:

  • 發送數據到廣播地址,例如,端口號192.168.255.255。你的主機正在運行。這會將數據發送給連接到192.168.x.x子網的每個人。 (255.255.255.255是有效的 - 發送給每個人 - 但這幾乎總是被丟棄,可能不會工作)。
  • 你並不需要在廣播你的IP,因爲接收者可以看到他們從接收到的數據的IP終點。

注意:防火牆,NAT等通常會丟棄傳入的未經請求的數據,除非明確告知允許/轉發它。在局域網上,上面所描述的通常沒有變化。