玉兔远程控制 0.1.0-bate11
载入中...
搜索中...
未找到
ChannelSSHTunnelForward.h
1// Author: Kang Lin <kl222@126.com>
2
3#ifndef CHANNELSSHTUNNELFORWARD_H
4#define CHANNELSSHTUNNELFORWARD_H
5
6#include "ChannelSSHTunnel.h"
7
22class CChannelSSHTunnelForward : public CChannelSSHTunnel
23{
24 Q_OBJECT
25public:
26 explicit CChannelSSHTunnelForward(CParameterSSHTunnel *parameter,
27 CParameterNet *remote,
28 CBackend *pBackend,
29 QObject *parent = nullptr);
30 virtual ~CChannelSSHTunnelForward();
31
32 // QIODevice interface
33public:
34 virtual bool open(OpenMode mode) override;
35 virtual void close() override;
36 virtual int Process();
37
38 enum class SOCKET_TYPE{
39 UnixSocket,
40 Socket
41 };
42
43Q_SIGNALS:
44 void sigServer(QString szHost, quint16 nPort);
45 void sigServer(QString szUnixDomainSocket);
46
47private:
48 socket_t m_Listen;
49 socket_t m_Connector;
50
51 SOCKET_TYPE m_SocketType;
52
53 int CloseSocket(socket_t &s);
54 int AcceptConnect();
55 int ReadConnect();
56 int SSHReadyRead();
57 int OpenSocket();
58#if defined(HAVE_UNIX_DOMAIN_SOCKET)
59 int OpenUnixSocket();
60#endif
61 char* m_pBuffer;
62 const int m_BufferLength = 1024;
63};
64
65#endif // CHANNELSSHTUNNELFORWARD_H
后端接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Start()、 slotTimeOut()、 OnProcess() 。 当然,它仍然支...
virtual bool open(OpenMode mode) override
网络连接参数接口。此类仅在插件内有效。 其界面为 CParameterNetUI