我想通過網絡發送UDP給微控制器。微控制器幾乎將所有的IP堆棧都剝離出來,以保持其精簡,因此無法參與ARP。 微控制器正在輸出廣播數據包,我可以收到,所以我知道它的IP地址和MAC地址。 我可以向它發送廣播UDP數據包,但它收到罰款,但當我嘗試使用其IP地址發送數據包時,我可以在wireshark中看到ARP消息,「誰有192.168.1.205?告訴192.168.1.18」,205是微,18是我的電腦。微不響應它的MAC地址,所以我無法發送數據包,但我知道微型發出的數據包的MAC地址。發送UDP數據包,不使用ARP,已知的IP和MAC
所以我的問題是我可以使用UdpClient指定IP和MAC地址,所以它不需要使用ARP ..還有什麼我不考慮?
的作品的廣播方法是這樣的:
myUdpClient.EnableBroadcast = true;
myUdpClient.Connect(IPAddress.Broadcast, port);
myUdpClient.Send(dataBytes, dataBytes.Length);
固定IP的方法,這並不目前的工作是這樣的
IPEndPoint ep = new IPEndPoint("192.168.1.205", port);
myUdpClient.Send(dataBytes, dataBytes.Length, ep);
我已經看過了,使用像
myUdpClient.Client.SendTo(dataBytes, SocketFlags.DontRoute, ep);
但這不起作用,仍然沒有使用微控制器MAC地址ess ..我的應用程序知道和需要使用(我認爲)。我也希望網絡上的一些ARP表能夠知道MAC地址在哪裏看到,因爲這些信息正在從它發送的數據包中。
作爲一個說明,我想保持廣播到最低限度以減少加載網絡上的其他微控制器。
由於提前, 加雷思
內置的網絡類別不會友好地發送到不符合標準的目標。 – 2012-08-07 12:54:42