2

libssh を使用して ssh トンネルをセットアップしています。ただし、これはローカル ポートにバインドしないため、ポートで受信したすべてのデータを ssh チャネルに転送する必要があります。ただし、これを行うと:

QTcpSocket* socket = new QTcpSocket();
socket->bind(27017);

QObject::connect(socket, &QTcpSocket::readyRead, this, &Forwarder::newData);

スロットは呼び出されません。newDataつまり、readyReadon QTcpSocket は呼び出されません。外部スクリプトを介してポートに接続しようとするたびに、Operation timed out. Qtアプリケーションが実行されていないときにエラーが発生するため、少なくともポートが開いていると確信していますConnection refused

の使用を検討しQTcpServerましたが、このケースをどのように処理すればよいですか? おそらくシグナルを受け取るでしょうがnewConnection、ssh チャネルにどのようなデータを書き込むのでしょうか? QTcpServer の複数の着信接続をどのように処理しますか? 接続要求もデータパケットではありませんか? すべてをチャネルに転送することはできませんか (私が参照している ssh チャネルは、簡単に書き込むことができる fd に似ています)。

4

0 に答える 0