【问题标题】:DatagramSocket and DatagramPacket数据报套接字和数据报包
【发布时间】:2015-08-20 15:21:17
【问题描述】:

我想在子网中广播 UDP 消息。

我的问题是,DatagramSocket应该放什么地址,DatagramPacket应该放什么地址?

【问题讨论】:

  • 您考虑过查阅 Javadoc 吗?
  • 我的困惑是关于广播UDP数据包,我应该把广播地址放在哪里?在 DatagramSocket() 或 DatagramPacket() 中?还是两者都有?
  • “将广播地址放入 DatagramSocket”到底是什么意思?你说的是哪种方法?您不了解 Javadoc 的哪一部分?
  • 好的,首先,我必须向子网中的每个人发送 udp 数据包。为此,我将不得不使用 DatagramSocket() 和 DatagramPacket()。 DatagramSocket() 和 DatagramPacket() 都需要一个 ipAddress 和一个端口来进行配置,对吧?如果是这样,那么我应该将哪个 ip 地址放在这里“DatagramSocket(InetAddress, port)”以及这个“DatagramPacket(byte, byte.length(), ipAddress, port)”的哪个 ip 地址。我的目的是广播 Udp 数据包。
  • 用 IP:port 构造一个DatagramSocket 设置它的本地地址。将 IP:port 放入 DatagramPacket 会设置 target 地址。在进行广播时,应将广播地址放入数据包中,一般在构造DatagramSocket 时只需提供端口号。

标签: java udp broadcast datagram


【解决方案1】:

看看这个article。它是关于网络发现的,但它显示了如何发送广播 udp 包,仔细查看客户端示例。很快,首先您使用默认的 bradcast-address 发送 udp-package,然后您循环所有网络接口并使用每个接口的广播地址发送 udp-packages。

DatagramSocket 和 DatagramPacket 怎么样:要发送数据包,您可以使用任何 DatagramSocket,但您必须为 DatagramPacket 设置广播地址。您需要为套接字设置一个地址,以防您需要侦听特定端口。

【讨论】:

  • 非常感谢。本教程对我有帮助。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多