java.net.SocketException:不是多播地址
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java.net.SocketException:不是多播地址,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1482字,纯文字阅读大概需要3分钟。
内容图文
我正在使用MulticastSocket,当我尝试加入一个组时,当我在“localhost”ip上运行组时,它永远不会工作.但是,我发现这篇文章http://lycog.com/programming/multicast-programming-java/表明范围应该在224.0.0.1和239.255.255.254之间.当我从该IP中创建一个InetAddress并加入该组时,它就可以工作了.请解释为什么这是必要的.
例:
InetAddress group = InetAddress.getByName("localhost");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
//抛出
Unable to connect to host:localhost on port:8888
java.net.SocketException: Not a multicast address
有效的示例:
InetAddress group = InetAddress.getByName("224.0.0.1");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
解决方法:
一切都与标准有关.关于多播地址,请参阅wiki article的简短片段:
IPv4 multicast addresses are defined by the leading address bits of 1110, originating from the classful network design of the early Internet when this group of addresses was designated as Class D. The Classless Inter-Domain Routing (CIDR) prefix of this group is 224.0.0.0/4. The group includes the addresses from 224.0.0.0 to 239.255.255.255.
此外,多声道套接字在javadoc中几乎相同
A multicast group is specified by a class D IP address and by a standard UDP port number. Class D IP addresses are in the range 224.0.0.0 to 239.255.255.255, inclusive. The address 224.0.0.0 is reserved and should not be used.
所以,是的,当您尝试加入具有超出此范围的组地址的多播组(如localhost 127.0.0.1)时,您会收到此异常.
内容总结
以上是互联网集市为您收集整理的java.net.SocketException:不是多播地址全部内容,希望文章能够帮你解决java.net.SocketException:不是多播地址所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。