2

我有一个使用 libssh 的 ssh 隧道设置。但是,这不会将它绑定到本地端口,所以我需要的本质上是将端口上接收到的所有数据转发到 ssh 通道。但是,当我这样做时:

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

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

插槽永远不会被调用,newDatareadyReadon QTcpSocket 永远不会被调用。每当我尝试通过外部脚本连接到端口时,我都会得到一个Operation timed out. 我确信至少端口已打开,因为当 Qt 应用程序未运行时,我得到的错误是Connection refused.

我考虑过使用QTcpServer,但是,我该如何处理这种情况?我可能会收到newConnection信号,但是我要向 ssh 通道写入什么数据?我将如何处理 QTcpServer 的多个传入连接?连接请求不也是数据包吗?我可以不将所有内容转发到频道吗(我指的 ssh 频道类似于我可以简单写入的 fd)。

4

0 回答 0