【发布时间】:2010-10-09 16:42:33
【问题描述】:
尝试在 MulticastSocket 上调用 joinGroup(addr) 时出现 SocketException。这只发生在我们设置为在机器启动时自动启动应用程序的 Windows 机器上。
似乎抛出异常是因为 Windows 尚未完全完成其启动过程,这里是异常。
java.net.SocketException: error setting options
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.PlainDatagramSocketImpl.join(Unknown Source)
at java.net.MulticastSocket.joinGroup(Unknown Source)
在我们的应用启动时,如果我们在尝试加入群组之前等待一分钟,一切正常。
所以我们决定设置一个重试循环,以便它在网络可用时立即连接,这似乎可以工作。两次失败后,第三次尝试加入群组成功。
问题是,现在 MulticastSocket 没有收到来自该组的任何消息,即使它加入得很好。
每次失败后我都会创建一个新的 MulticastSocket 并丢弃旧的。
为什么在一个 MulticastSocket 上加入组失败会影响没有任何错误加入的组,我该如何解决这个问题?
【问题讨论】:
标签: java windows multicastsocket