Я разрабатываю приложение на основе JXTA на Java с JXSE. Он работает очень хорошо на местном уровне, но теперь я пытаюсь получить эту работу в Интернете.JXTA в Интернете
Например, у меня есть 2 компьютера в локальной сети. Они сразу найдут друг друга, и приложение будет работать. Нет проблем.
Теперь у меня эти 2 компьютера и еще 2 компьютера в другой локальной сети. Как я понимаю, мне нужно, для минимального требования, 2 публичных одноранговых RendezVous (по одному в каждой локальной сети), которые будут подключены. Но я не могу найти, как с этим бороться.
В моем приложении я использую метод setAutoStart, это означает, что одноранговый узел будет автоматически добавлен к одноранговому узлу RendezVous при необходимости.
Так что, я думаю, невозможно, чтобы 2-х удаленный друг обнаружил друг друга, не дав тогда их публичный адрес. Поэтому мне нужно получить действительный адрес tcp на одноранговом узле и передать его другим. Если кто-то знает, как это сделать, я буду очень счастлив!
Edit: мой конфиг
//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);
Так я бы создать addRendezVous (Uri Uri) или addRendezVous (String URI), которые работают с net_group.getRendezVousService, но я не знаю, как найти URI или адрес ..
И мое приложение:
Спасибо за ваши ответы, извините за задержку. Я думаю, что понимаю это, но вы жестко закодировали IP-адрес Rendez vous peer: RendezvouServerTCPSeed = "tcp: //192.XXX.X.XX: 9705 "; Я не понимаю, как это сделать, если я хочу поделиться своим программным обеспечением (им пришлось вручную изменить этот адрес?) На самом деле, я хочу, чтобы один одноранговый узел мог подключиться к любому другому . по всему миру, без редактирования исходного кода это возможно (как некоторых торрент программного обеспечения для Exemple) Я поставил некоторый журнал позже – crashxxl
работы с использованием URI theSeed = URI.create (адреса);?. \t \t попробовать { . \t \t \t networkManager.getConfigurator() addSeedRendezvous (theSeed); \t \t} поймать (IOException е) { \t \t \t // TODO автоматическая генерация улова блока \t \t \t e.printStackTrace(); \t \t} Обязательно настройте маршрутизатор rendezVous. – crashxxl