Простой сервер / клиент графический интерфейс - PullRequest
0 голосов
/ 26 июля 2011

У меня есть приложение, настроенное таким образом:

Сервер прослушивает входящее соединение от клиента, и когда клиент подключается, и сервер, и клиент создают новый поток, отслеживая любые изменения в графическом интерфейсе (нажатие кнопки, команда и т. Д.). Моя проблема в том, как я могу заставить серверные и клиентские потоки взаимодействовать друг с другом (сообщать о любых изменениях в соответствующих состояниях графического интерфейса)? Я искал ответ уже несколько дней, но, похоже, не могу его найти. Имейте в виду, что я только начал изучать параллелизм, поэтому, пожалуйста, будьте максимально подробны со своим ответом.

Ответы [ 2 ]

0 голосов
/ 06 августа 2011

Каждый раз, когда происходит событие, вам нужно создать какой-то объект «события», закодировать его и отправить по сети другому процессу, который затем получает его, декодирует и выполняет то же событие.

Чтобы отправлять объект события по сети, вам необходим способ кодирования и декодирования его в виде строки / байтов. Для этого у вас есть несколько вариантов - для предварительно реализованных методов вы можете попробовать java Serializable / ObjectOutputStream / ObjectInputStream или XMLEncoder / XMLDecoder. Вы также можете заглянуть в другие библиотеки XML или JSON или даже написать свой собственный кодер / декодер, если события достаточно просты.

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

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

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

Вы можете определить свое собственное определение для XML, JSON и использовать свое собственное определение для запуска нужного действия между ними.

Хорошая клиент-серверная архитектура не должна зависеть от используемого вами языка, например Java. Клиент должен использовать разные языки программирования, которые получают сообщения со стороны сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...