libssh を使用して ssh トンネルをセットアップしています。ただし、これはローカル ポートにバインドしないため、ポートで受信したすべてのデータを ssh チャネルに転送する必要があります。ただし、これを行うと:
QTcpSocket* socket = new QTcpSocket();
socket->bind(27017);
QObject::connect(socket, &QTcpSocket::readyRead, this, &Forwarder::newData);
スロットは呼び出されません。newData
つまり、readyRead
on QTcpSocket は呼び出されません。外部スクリプトを介してポートに接続しようとするたびに、Operation timed out
. Qtアプリケーションが実行されていないときにエラーが発生するため、少なくともポートが開いていると確信していますConnection refused
。
の使用を検討しQTcpServer
ましたが、このケースをどのように処理すればよいですか? おそらくシグナルを受け取るでしょうがnewConnection
、ssh チャネルにどのようなデータを書き込むのでしょうか? QTcpServer の複数の着信接続をどのように処理しますか? 接続要求もデータパケットではありませんか? すべてをチャネルに転送することはできませんか (私が参照している ssh チャネルは、簡単に書き込むことができる fd に似ています)。