JGroups在两台机器之间找不到对方的解决方法

问题描述:使用JGroups编写了一个基于ip_mcast的程序,在同一台机器上能正常运行,在局域网内的两台机器上运行却找不到对方。

1.核对两台机子的ip,确实在同一子网下。

2.查看运行时输出,发现两台机子绑定的ip一个是ipv6,一个是ipv4。把默认绑定ipv6的那台机子修改为它的ipv4地址(-Djgroups.bind_addr=223.3.96.192),再试还是不能相互发现。

3.看了官网manual的"2.8 It doen't work"一章,怀疑学校局域网不支持多播,运行JGroups的tests包下的McastReceiverTest和McastSenderTest,发现多播能正常使用,但Sender发一次消息,Receiver会接收到多次。

4.查看ipconfig,出现几十个地址,包括十几个ipv6的地址。

5.怀疑广播地址或者端口被禁用,在协议栈中配置广播地址和端口,将它们设置为3中证实能使用的地址和端口,仍然没用。

6.安装虚拟机,在本机和虚拟机上执行程序,地址绑定为vmware的虚拟网络地址,仍然不行。

7.安装虚拟机2,在虚拟机1和虚拟机2上执行程序,地址绑定为vmware的虚拟网络地址,居然成功了。

8.实体机上不行,虚拟机上可以,纠结了2天。

9.无意间看了

在两台主机上运行,启动时加入

-Djava.net.preferIPv4Stack=true
居然成功了。



总结:

1.对官网文档研究不仔细

2.对ipv6不熟,以为2.9章和我的程序没什么关系。

3.分析能力不够,根据测试结果:“本机和另一台机器不成功,本机和虚拟机不成功,虚拟机和虚拟机成功”,应该怀疑是本机的问题。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值