3#include <QLoggingCategory>
6#include "ChannelSSHTunnelForward.h"
7#include "SSHTunnelThread.h"
9static Q_LOGGING_CATEGORY(log,
"Channel.SSH.Tunnel.Thread")
15 m_pParameter(parameter),
18 qDebug(log) <<
"CSSHTunnelThread::CSSHTunnelThread";
20 check = connect(
this, SIGNAL(finished()),
this, SLOT(deleteLater()));
24CSSHTunnelThread::~CSSHTunnelThread()
26 qDebug(log) <<
"CSSHTunnelThread::~CSSHTunnelThread";
29void CSSHTunnelThread::Exit()
34void CSSHTunnelThread::run()
37 qDebug(log) <<
"CSSHTunnelThread run";
39 m_pParameter, m_pRemoteNet, m_pConnect);
44 bool check = connect(p, SIGNAL(
sigServer(QString, quint16)),
45 this, SIGNAL(
sigServer(QString, quint16)));
47 check = connect(p, SIGNAL(
sigServer(QString)),
50 check = connect(p, SIGNAL(sigError(
int,QString)),
this,
51 SIGNAL(sigError(
int,QString)));
54 if(!p->
open(QIODevice::ReadWrite)) {
56 tr(
"Error"), p->errorString(), QMessageBox::Critical);
60 while (!m_bExit && nRet >= 0) {
63 qCritical(log) <<
"Process fail" << p->errorString();
72 emit sigError(nRet, p->errorString());
77 qDebug(log) <<
"CSSHTunnelThread end";
包括 SSH 隧道和用于转发数据的本地 SOCKET 服务。 实现通过本地 socket 与 SSH 隧道转发数据。适用于库没有实现传输层接口,只有 socket 的情况。
virtual bool open(OpenMode mode) override
连接接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Connect()、 slotTimeOut()、 OnProcess() 。 当然,它仍...
void sigShowMessageBox(const QString &szTitle, const QString &szMessage, const QMessageBox::Icon &icon=QMessageBox::Information)
从后台线程中触发在主线程中显示消息对话框(QMessageBox),不阻塞后台线程
网络连接参数接口。此类仅在插件内有效。 其界面为 CParameterNetUI
实现通过本地 SOCKET 与 SSH 隧道转发数据。适用于库没有实现传输层接口,只有 socket 的情况。
void sigServer(QString szHost, quint16 nPort)
当 SOCKET 服务建立监听后触发,用于通知其它本地 SOCKET 可以连接它