управление Java-программой из другой Java-программы на другом узле - PullRequest
0 голосов
/ 25 декабря 2018

Раньше я никогда не выполнял такую ​​работу в java.

требования следующие:

в одной сети LAN будет подключено как минимум 2 ПК.на каждом из них запущена программа для рабочего стола Java.

Допустим, на ПК №1 установлено приложение Java1, а на ПК №2 будет приложение Java2.

  • Java2 на ПК № 2 сможет найти другой узел / ПК (по предоставленному IP / имени хоста) и сможет подключаться к Java1 на ПК № 1.

  • Java1 на ПК № 1сможет дать разрешение на подключение Java2 к себе и управление всеми элементами свинга, доступными в приложении Java1.

  • Приложение Java1 будет иметь jButton и jLabel, вот что кнопкавыполняет:

    private void btnNextActionPerformed(java.awt.event.ActionEvent evt) {  
            /* labelNum has been declared out of this function and has "0" 
            as it's initial text value */                          
            int num = Integer.parseInt(labelNum.getText());
            num ++;
            labelNum.setText(String.valueOf(num));
    }
    

, в то время как Java2 имеет только jButton, при подключении к Java1 на ПК № 1 jButton на Java2 будет выполнять ту же функцию, что и приложение jButton на Java1, он будет увеличивать значение labelNum в приложении Java1.

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

Спасибо за ваше время.(и прошу прощения за мой, возможно, неподходящий английский).

Примечание: я опубликовал аналогичный вопрос на CodeRanch, но после 12 часов я думаю, что смогу получить дополнительную помощь здесь, если я получу / предоставлю ответ на любойсайта я выложу / обновлю ответ на оба и закрою оба поста.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 28 января 2019

Я закончил Программу, в которой я нуждался, используя Java Socket Programming, все работает отлично и в порядке, и намного менее сложно по сравнению с RMI и проблемами с менеджером безопасности, с которыми я столкнулся.

Iиспользовал String Tokenizer для токенизации строки, отправленной клиентским ПК, для извлечения информации, такой как (clientNo commandType queueType currentQueueNo), разделенной пробелом.

clientNo = номер ID клиента, отправляющего запрос на сервер commandType =Тип команды / функции, запрашиваемой для выполнения клиентом.queueType = тип очереди, запрошенной клиентом currentQueueNo = номер текущей / последней очереди, обслуживаемый клиентом

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

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

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

надеюсь, что он достаточно ясен как ответ.

0 голосов
/ 28 января 2019

вот шаги.

  • учиться программированию сокетов
  • отправьте сообщение с ПК № 2 на ПК № 1 при нажатии кнопки
  • получить сообщение наpc # 1, если это то же самое сообщение, которое вы отправили с pc # 2, тогда увеличьте текущее целочисленное значение метки.
0 голосов
/ 25 декабря 2018

Это относится к гораздо большей проблеме о том, как отправлять / получать запросы от другого узла, который - поверьте мне или нет - требует гораздо больше работы, чем 1 или 2 программы.Если бы вы снизили масштаб до 2 микроконтроллеров с двумя SD-картами или чем-то еще, это было бы намного проще.Это должно быть вашим началом

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