network-programming之如何从 Android 应用程序将 UDP 数据包发送到 MAC 地址

exmyth 阅读:56 2024-10-25 08:56:14 评论:0

有没有办法将 UDP 数据包发送到网络 MAC 地址? 都不是DatagramSocket也不DatagramPacket似乎有一种机制可以做到这一点。

请您参考如下方法:

由于分层的网络堆栈,第一 react 是您不能向 MAC 地址发送 UDP 消息。我的陈述意味着您无法在 UDP 数据报字段中设置 MAC 地址。您可以将 UDP 数据报发送到 IP 地址和端口。该 IP 地址可以是单播、多播或广播。

如果您打算将 UDP 数据报发送到特定的 MAC 地址,则需要实现更复杂的解决方案(DHCP 是更复杂解决方案的一个示例)。您可以应用不同的策略:

  • 如果您只需要向 MAC 地址发送数据报,而没有从该 NIC 收到任何数据报,并且知道该 MAC 地址,则首先您需要向该 MAC 地址发送第 2 层帧(第 2 层协议(protocol)允许您设置 MAC 地址)。您可以实现一个协议(protocol)来监听该 MAC 地址帧,并能够发回响应,为您提供相应的 IP 地址。 RARP 是一种协议(protocol),可让您在给定 MAC 地址的情况下获得 IP
  • 您可以实现使用多播组的协议(protocol)。从您的 PC 发送一个多播消息,其中包含您的目标 MAC 地址。订阅该多播组的所有节点(节点中的应用程序)都会收到该消息。具有目标 MAC 地址的设备可以响应。一旦它响应,您就有了它的 IP 地址并可以发送单播 UDP 数据报。


标签:Android
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号