我正在尝试编写一个简单的UDP心跳来广播到我整个子网中给定端口上的所有侦听节点。无法绑定到客户端的广播地址 - Java/Scala
我无法创建/绑定客户端DatagramSocket。我试图这样的代码:
// My IP is 192.168.201.57, so I'm using 192.168.201.255 for broadcast. Right?
val socket = new DatagramSocket(9099, InetAddress.getByName("192.168.201.255"))
这产生了一个异常:java.net.BindException:无法分配请求的地址。
我也试过255.255.255.255,结果相同。 也试过这样的基础上的东西我在另一篇文章阅读:
val socket = new DatagramSocket(null)
socket.bind(new InetSocketAddress(broadcastIp, port)) // where I tried several broadcastIp values
这也给了同样的异常。我还应该补充一点,我已经尝试了不同的端口值,并确保机器上没有其他设备正在使用我尝试的端口。
这不是强制性的。 IP将根据到达目的地的路由表选择一个接口。 – EJP 2013-04-09 23:06:40
答复已更新。 – Aubin 2013-04-09 23:12:56