我正在使用 JXSE 在 Java 中开发基于 JXTA 的应用程序。它在本地工作得很好,但现在我尝试在互联网上完成这项工作。
例如,我在本地网络上有 2 台计算机。他们会立即找到对方,并且该应用程序将正常工作。没问题。
现在,我在另一个本地网络上有这 2 台计算机和 2 台其他计算机。据我了解,对于最低要求,我需要 2 个将连接的公共 RendezVous 对等点(每个本地网络上一个)。但我找不到如何处理它。
在我的应用程序中,我使用 setAutoStart 方法,这意味着如果需要,对等点将自动提升为 RendezVous 对等点。
所以我认为,如果不给出他们的公共地址,两个遥远的同伴就不可能发现对方。所以我需要在对等方上检索一个有效的 tcp 地址并将其提供给其他人。如果有人知道该怎么做,我会很高兴的!
编辑:我的配置
//Network setup
try {
manager = new NetworkManager(NetworkManager.ConfigMode.EDGE, peer_name, conf.toURI());
} catch (IOException e) {
//chemin incorrect ?
e.printStackTrace();
System.exit(-1);
}
try {
NetworkConfigurator configurator = manager.getConfigurator();
configurator.setTcpPort(port);
configurator.setTcpEnabled(true);
configurator.setTcpIncoming(true);
configurator.setTcpOutgoing(true);
configurator.setUseMulticast(true);
configurator.setPeerID(peer_id);
} catch (IOException e) {
// ? Si le dossier a bien été crée pas trop de raison d'avoir cette exception
e.printStackTrace();
}
// ..... some code ....... ///
PeerGroup net_group = manager.startNetwork();
net_group.getRendezVousService().setAutoStart(true);
所以我会创建一个与 net_group.getRendezVousService 一起使用的 addRendezVous(URI uri) 或 addRendezVous(String uri),但我真的不知道如何找到 URI 或地址..
我的应用程序: