протокол связи Java - PullRequest
       53

протокол связи Java

1 голос
/ 11 декабря 2011

Я собираюсь реализовать взаимодействие сервер / клиент через tcp / ip через Интернет.Сервер и клиент будут немного болтать при попытке синхронизировать их состояния.

client: sends state
server: check state and request differences
client: sends 1 element
server: sends ack/nak
client: sends 1 element
server: sends ack/nak
.
.
.
etc.

Каков наилучший способ реализовать это?Должен ли я использовать сырые сокеты?Должен ли я использовать 2 соединения, по одному для каждого направления?Должен ли я использовать рамки?Любая идея приветствуется.

Спасибо

РЕДАКТИРОВАТЬ: Каков наилучший способ реализовать это, когда приоритет имеют большая нагрузка (гигабайты данных), стабильность и простота реализации?

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

Было бы неплохо использовать каркас, который обрабатывает повторное соединение и т. Д.

Ответы [ 2 ]

1 голос
/ 11 декабря 2011

Каков наилучший способ реализовать это, когда большая нагрузка (гигабайты данные), стабильность и простота реализации являются приоритетными?

С моей точки зрения, эти цели являются подсказками для использования стабильной среды, а не для реализации собственного решения.

Посмотрите на веб-сервисы Java (вы можете найти множество примеров от Googling), и пусть оба клиента также предоставляют интерфейс сервера.
Я бы порекомендовал RESTful вместо сервисов SOAP.

1 голос
/ 11 декабря 2011

Если и клиент, и сервер будут Java-программами, рассмотрите вариант использования RMI :

Система удаленного вызова методов Java (RMI) позволяетобъект, запущенный на одной виртуальной машине Java, для вызова методов на объекте, запущенном на другой виртуальной машине Java.RMI обеспечивает удаленную связь между программами, написанными на языке программирования Java.

Это проще, чем пытаться реализовать собственный протокол поверх сокетов.

...