Связь между двумя программами Java - PullRequest
0 голосов
/ 23 июля 2011

Я хотел бы создать две Java-программы, которые сообщают друг другу сообщения. Я знаю метод клиент <-> сервер <-> клиент (с использованием сокетов), но я хочу создать клиент <-> клиент связь (без сервера). Как я мог это сделать?

Ответы [ 4 ]

5 голосов
/ 23 июля 2011

Если вы внедрили базовую архитектуру клиент / сервер с сокетами, то вы можете сделать то же самое. Каждый клиент является и клиентом, и сервером, и у вас есть более одноранговая структура типа.

1 голос
/ 23 июля 2011

Чтобы установить клиентское <-> клиентское соединение, один клиент может отправить сообщение на сервер, который передает сообщение другому клиенту.Сообщение будет включать в себя IP-адрес клиента, порт, все, что необходимо для непосредственного подключения к первому клиенту.

Это распространенный метод для передачи файлов в клиентах IM и реального потока мультимедиа в SIP.Обязательно следите за проблемами межсетевого экрана, если клиенты находятся в разных сетях - см. Обходы STUN, TURN и ICE.

Возможно, вы сможете (повторно) использовать существующую реализацию Jabber (XMPP) для этого.

0 голосов
/ 23 июля 2011

Для этой цели вы можете использовать реализацию JXTA .Это не простой API, хотя.

0 голосов
/ 23 июля 2011

Это зависит от того, как вы реализуете, вы можете использовать сетевой протокол для связи между такими программами, как HTTP (довольно часто).

Для передачи сообщений также существуют различные типы протоколов, такие как XML, JSON или облегченный буфер протокола и т. Д.

...