Я занимаюсь разработкой распределенного приложения, и мне нужно подключить клиентскую Java на базе C++
на основе. Им обоим нужно будет отправлять информацию друг другу, но мне нужно, чтобы они могли что-то делать в ожидании информации, и они не знают, когда они получат новую информацию или отправят информацию.
Как мне этого добиться? Сейчас я пытаюсь реализовать базовую связь с сокетами, но мне не удается их передать. Я читал, что использование сокетов + потоков обычно является хорошим подходом для клиент-серверных приложений.
Не могли бы вы порекомендовать мне какую-нибудь сеть или книгу, чтобы прочитать об этом, или пришлите мне пример кода для изучения?
Как вы думаете, я должен использовать другой подход, лучше, чем сокеты? может быть, библиотека более высокого уровня (мне это понадобится для c ++ и java) или совершенно другой способ?
РЕДАКТИРОВАТЬ:
Я добавлю дополнительную информацию.
Я бы хотел добиться следующего:
В моей программе на C ++ есть основной цикл, в котором я хотел бы получить вызов, подобный GetUpdatedDataFromRemoteDevice()
, где я читаю новые значения некоторых числовых переменных, которые ранее были обновлены из сети (например, сокета).
В конце концов, программе на C ++ нужно будет отправить сообщение на удаленное устройство, сказать ему, чтобы он отправлял другие данные, и после этого продолжать получать обновленные значения.
Из Java-программы (удаленного устройства) запущенное приложение представляет собой интерактивный сенсорный экран, который не может быть заблокирован сетевыми передачами, поскольку он должен продолжать работать для пользователя, поэтому вся работа в сети должна выполняться в отдельном потоке.
Этот поток должен подключиться к серверу, и когда кнопка нажата, начните отправлять данные (4 изменяющихся числовых значения) в цикле, пока не произойдет другое событие.
Было бы неплохо также легко подключиться к серверу.