35 QSocks5SocketEngine(QObject *parent =
nullptr);
36 ~QSocks5SocketEngine();
38 bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol) override;
39 bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState) override;
41 void setProxy(
const QNetworkProxy &networkProxy);
43 qintptr socketDescriptor()
const override;
45 bool isValid()
const override;
47 bool connectInternal();
48 bool connectToHost(
const QHostAddress &address, quint16 port) override;
49 bool connectToHostByName(
const QString &name, quint16 port) override;
50 bool bind(
const QHostAddress &address, quint16 port) override;
51 bool listen(
int backlog) override;
52 qintptr accept() override;
53 void close() override;
55 qint64 bytesAvailable()
const override;
57 qint64 read(
char *data, qint64 maxlen) override;
58 qint64 write(
const char *data, qint64 len) override;
60#ifndef QT_NO_UDPSOCKET
61#ifndef QT_NO_NETWORKINTERFACE
62 bool joinMulticastGroup(
const QHostAddress &groupAddress,
63 const QNetworkInterface &iface) override;
64 bool leaveMulticastGroup(
const QHostAddress &groupAddress,
65 const QNetworkInterface &iface) override;
66 QNetworkInterface multicastInterface()
const override;
67 bool setMulticastInterface(
const QNetworkInterface &iface) override;
70 bool hasPendingDatagrams()
const override;
71 qint64 pendingDatagramSize()
const override;
74 qint64 readDatagram(
char *data, qint64 maxlen, QIpPacketHeader * =
nullptr,
75 PacketHeaderOptions = WantNone) override;
76 qint64 writeDatagram(
const char *data, qint64 len,
const QIpPacketHeader &) override;
77 qint64 bytesToWrite()
const override;
79 int option(SocketOption option)
const override;
80 bool setOption(SocketOption option,
int value) override;
82 bool waitForRead(QDeadlineTimer deadline = QDeadlineTimer{DefaultTimeout},
83 bool *timedOut =
nullptr) override;
84 bool waitForWrite(QDeadlineTimer deadline = QDeadlineTimer{DefaultTimeout},
85 bool *timedOut =
nullptr) override;
86 bool waitForReadOrWrite(
bool *readyToRead,
bool *readyToWrite,
87 bool checkRead,
bool checkWrite,
88 QDeadlineTimer deadline = QDeadlineTimer{DefaultTimeout},
89 bool *timedOut =
nullptr) override;
91 bool isReadNotificationEnabled()
const override;
92 void setReadNotificationEnabled(
bool enable) override;
93 bool isWriteNotificationEnabled()
const override;
94 void setWriteNotificationEnabled(
bool enable) override;
95 bool isExceptionNotificationEnabled()
const override;
96 void setExceptionNotificationEnabled(
bool enable) override;
99 Q_DECLARE_PRIVATE(QSocks5SocketEngine)
100 Q_DISABLE_COPY_MOVE(QSocks5SocketEngine)
101 Q_PRIVATE_SLOT(d_func(),
void _q_controlSocketConnected())
102 Q_PRIVATE_SLOT(d_func(),
void _q_controlSocketReadNotification())
103 Q_PRIVATE_SLOT(d_func(),
void _q_controlSocketErrorOccurred(QAbstractSocket::SocketError))
104#ifndef QT_NO_UDPSOCKET
105 Q_PRIVATE_SLOT(d_func(),
void _q_udpSocketReadNotification())
107 Q_PRIVATE_SLOT(d_func(),
void _q_controlSocketBytesWritten())
108 Q_PRIVATE_SLOT(d_func(),
void _q_emitPendingReadNotification())
109 Q_PRIVATE_SLOT(d_func(),
void _q_emitPendingWriteNotification())
110 Q_PRIVATE_SLOT(d_func(),
void _q_emitPendingConnectionNotification())
111 Q_PRIVATE_SLOT(d_func(),
void _q_controlSocketDisconnected())
112 Q_PRIVATE_SLOT(d_func(),
void _q_controlSocketStateChanged(QAbstractSocket::SocketState))