我试图运行Draw示例并在两台不同的计算机之间进行通信。它使用此命令在同一台机器上正常工作:
java -Djgroups.bind_addr=127.0.0.1 -Djava.net.preferIPv4Stack=true org.jgroups.demos.Draw
现在我尝试在bind_addr中给出另一台机器的IPv4Address,它给我一个错误说
/'other.machine.ip' is not a valid address on any local network interface
请告诉我命令或我应该为两台机器连接提供bind_addr
。
对不起,我刚刚开始这个,所以请告诉我简单的工作和确切的细节。
修改
确定。以下是我遵循的步骤:
java -Djgroups.bind_addr="Gave local IPv4 Address" -Djava.net.preferIPv4Stack=true org.jgroups.demos.Draw
java -Djgroups.bind_addr="Gave local IPv4 Address" -Djava.net.preferIPv4Stack=true org.jgroups.demos.Draw
注意:顺便说一下,我能够ping两台机器。我还禁用了防火墙以防万一。
我做错了什么或遗失了什么?任何帮助将不胜感激。
编辑2:
解决!
事实证明,我做的一切都是正确的。我所做的只是下载了以前版本的jgroups(在我的例子中,3.4.7
)。一切都很好。
答案 0 :(得分:1)
bind_addr需要是本地计算机的IP地址。它不能是127.0.0.1,因为它不会被路由到其他盒子,所以使用链接本地地址,例如192.168.x.x或10.0.x.x. 假设你使用带有UDP:PING的udp.xml,那就是你需要做的全部。如果使用TCP,则需要在TCP中设置bind_port并列出TCPPING.initial_hosts中的所有实例,例如: initial_hosts =" 192.168.1.1 [7800],192.168.1.5 [7800],..."
答案 1 :(得分:0)
你能ping通other.machine.ip吗?
对于我的设置,我使用以下系统属性 -
-Djgroups.bind_port = 7802 -Djgroups.bind_addr = HOST3 -Djgroups.tcpping.initial_hosts = HOST1 [7800],HOST2 [7801],HOST3 [7802]
值得在每个过程中尝试这些