2010-11-10 76 views
1

我正在嘗試創建無線網格的程序(adhoc除了名稱外)。大多數網絡將處理TCP消息傳遞,但要確定所有鄰居IP(因爲它們在啓動時將是未知的),所以我選擇使用UDP廣播作爲初始發現消息。確定無線網格中鄰居的IP地址

我目前有兩個問題。首先,UDP廣播僅由發送者和它的鄰居收到;第二,由於接收套接字無法接受發件人套接字(由於消息是數據報),因此我無法恢復IP地址。

我需要一種能夠使其工作的方法。

回答

3

你應該通過例如獲取源地址和數據報。 recvfromHere's the .NET version.您還必須set a socket option發送廣播數據報。

參見this question: Broadcasting UDP thru all network cards

+0

謝謝,這解決了第二個問題。 – 2010-11-10 03:38:43

+0

您設置了廣播選項,仍然無法將數據報發送到多個節點? – 2010-11-10 19:53:45

+0

他們是,我有系統解析他們錯了,所以他們沒有顯示爲收到。花了一段時間才弄清楚,因爲沒有任何錯誤或例外出現在任何地方。 – 2010-11-11 20:12:36

0

爲什麼UDP和爲什麼不說,ICMP ping到廣播地址,或者甚至用ICMP ping來強制你的網絡塊通過?在我看來,ping會更適合於確定一個特定主機是否「活着」,不是?

+1

大多數系統被鎖定,並且只回復單播坪。 – 2010-11-10 03:21:58