使用jgroup连接两台机器

时间:2015-01-23 07:19:36

标签: jgroups

我试图运行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。 对不起,我刚刚开始这个,所以请告诉我简单的工作和确切的细节。

修改

确定。以下是我遵循的步骤:

  1. 已下载jgroups.jar
  2. 像这样给出了CLASSPATH:" C:\ jgroups \ jgroups-3.6.1.Final.jar"
  3. 提取jar文件。
  4. 在机器A上执行此命令:java -Djgroups.bind_addr="Gave local IPv4 Address" -Djava.net.preferIPv4Stack=true org.jgroups.demos.Draw
  5. 在机器B上执行此命令:java -Djgroups.bind_addr="Gave local IPv4 Address" -Djava.net.preferIPv4Stack=true org.jgroups.demos.Draw
  6. 但是我无法沟通(在机器A上画了一些东西而机器B没有更新)
  7. 注意:顺便说一下,我能够ping两台机器。我还禁用了防火墙以防万一。

    我做错了什么或遗失了什么?任何帮助将不胜感激。

    编辑2:

    解决!

    事实证明,我做的一切都是正确的。我所做的只是下载了以前版本的jgroups(在我的例子中,3.4.7)。一切都很好。

2 个答案:

答案 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]

值得在每个过程中尝试这些