Я использую libssh2 для входа на удаленный компьютер, затем вызываю libssh2_channel_exec для запуска программы-демона, программа-демон затем выбирает доступный порт tcpip и печатает выбранный прот на консоль (stdio). Затем демон будет прослушивать порт для входящего соединения.
После этого шага клиент будет читать выбранный порт TCP из stdio с помощью "libssh2_channel_read". Я могу получить правильное значение.
Но вопрос в том,
Когда я закрываю канал libssh2 (libssh2_channel_close ()), программа будет заблокирована, пока удаленная программа не завершится. Существуют ли способы закрыть канал без закрытия удаленной программы? Поскольку я использую ssh только для входа в систему и доступного номера протета, это достаточно.
Кроме того, удаленная программа использует QCoreApplication Qt, поэтому после распечатки доступного prot она войдет в цикл обработки событий app.exec (), чтобы ответить клиенту, поэтому она не должна выходить сразу после печати номера порта. .