35 UnknownSocketType = -1
39#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
40 enum NetworkLayerProtocol {
44 UnknownNetworkLayerProtocol = -1
46 Q_ENUM(NetworkLayerProtocol)
49 using NetworkLayerProtocol = QHostAddress::NetworkLayerProtocol;
50 using enum NetworkLayerProtocol;
54 ConnectionRefusedError,
55 RemoteHostClosedError,
60 DatagramTooLargeError,
63 SocketAddressNotAvailableError,
64 UnsupportedSocketOperationError,
65 UnfinishedSocketOperationError,
66 ProxyAuthenticationRequiredError,
67 SslHandshakeFailedError,
68 ProxyConnectionRefusedError,
69 ProxyConnectionClosedError,
70 ProxyConnectionTimeoutError,
75 SslInvalidUserDataError,
78 UnknownSocketError = -1
95 MulticastLoopbackOption,
97 SendBufferSizeSocketOption,
98 ReceiveBufferSizeSocketOption,
101 KeepAliveIntervalOption,
102 KeepAliveCountOption,
106 DefaultForPlatform = 0x0,
108 DontShareAddress = 0x2,
109 ReuseAddressHint = 0x4
111 Q_DECLARE_FLAGS(BindMode, BindFlag)
114 PauseOnSslErrors = 0x1
116 Q_DECLARE_FLAGS(PauseModes, PauseMode)
118 QAbstractSocket(SocketType socketType, QObject *parent);
119 virtual ~QAbstractSocket();
121 virtual void resume();
122 PauseModes pauseMode()
const;
123 void setPauseMode(PauseModes pauseMode);
125 virtual bool bind(
const QHostAddress &address, quint16 port = 0,
126 BindMode mode = DefaultForPlatform);
127#if QT_VERSION >= QT_VERSION_CHECK(7
,0
,0
) || defined(Q_QDOC)
128 bool bind(QHostAddress::SpecialAddress addr, quint16 port = 0, BindMode mode = DefaultForPlatform)
129 {
return bind(QHostAddress(addr), port, mode); }
130 bool bind(quint16 port = 0, BindMode mode = DefaultForPlatform)
131 {
return bind(QHostAddress::Any, port, mode); }
133 bool bind(quint16 port = 0, BindMode mode = DefaultForPlatform);
136 virtual void connectToHost(
const QString &hostName, quint16 port, OpenMode mode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol);
137 void connectToHost(
const QHostAddress &address, quint16 port, OpenMode mode = ReadWrite);
138 virtual void disconnectFromHost();
140 bool isValid()
const;
142 qint64 bytesAvailable()
const override;
143 qint64 bytesToWrite()
const override;
145 quint16 localPort()
const;
146 QHostAddress localAddress()
const;
147 quint16 peerPort()
const;
148 QHostAddress peerAddress()
const;
149 QString peerName()
const;
151 qint64 readBufferSize()
const;
152 virtual void setReadBufferSize(qint64 size);
156 virtual qintptr socketDescriptor()
const;
157 virtual bool setSocketDescriptor(qintptr socketDescriptor, SocketState state = ConnectedState,
158 OpenMode openMode = ReadWrite);
160 virtual void setSocketOption(QAbstractSocket::SocketOption option,
const QVariant &value);
161 virtual QVariant socketOption(QAbstractSocket::SocketOption option);
163 SocketType socketType()
const;
164 SocketState state()
const;
165 SocketError error()
const;
168 void close() override;
169 bool isSequential()
const override;
173 using QIODevice::waitForBytesWritten;
174 using QIODevice::waitForReadyRead;
175 QT7_ONLY(
virtual)
bool waitForConnected(QDeadlineTimer timer = std::chrono::seconds(30));
176 bool waitForReadyRead(QDeadlineTimer timer = std::chrono::seconds(30)) QT7_ONLY(override);
177 bool waitForBytesWritten(QDeadlineTimer timer = std::chrono::seconds(30)) QT7_ONLY(override);
178 QT7_ONLY(
virtual)
bool waitForDisconnected(QDeadlineTimer timer = std::chrono::seconds(30));
180#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
181 virtual bool waitForConnected(
int msecs);
182 bool waitForReadyRead(
int msecs) override;
183 bool waitForBytesWritten(
int msecs) override;
184 virtual bool waitForDisconnected(
int msecs);
186 WaitForVirtualParametersChanged waitForConnected(
int msecs)
187 {
return waitForConnected(QDeadlineTimer(msecs)); }
188 WaitForVirtualParametersChanged waitForDisconnected(
int msecs)
189 {
return waitForDisconnected(QDeadlineTimer(msecs)); }
192#ifndef QT_NO_NETWORKPROXY
193 void setProxy(
const QNetworkProxy &networkProxy);
194 QNetworkProxy proxy()
const;
195 QString protocolTag()
const;
196 void setProtocolTag(
const QString &tag);
203 void stateChanged(QAbstractSocket::SocketState);
204 void errorOccurred(QAbstractSocket::SocketError);
205#ifndef QT_NO_NETWORKPROXY
206 void proxyAuthenticationRequired(
const QNetworkProxy &proxy, QAuthenticator *authenticator);
210 qint64 readData(
char *data, qint64 maxlen) override;
211 qint64 readLineData(
char *data, qint64 maxlen) override;
212 qint64 skipData(qint64 maxSize) override;
213 qint64 writeData(
const char *data, qint64 len) override;
215 void setSocketState(SocketState state);
216 void setSocketError(SocketError socketError);
217 void setLocalPort(quint16 port);
218 void setLocalAddress(
const QHostAddress &address);
219 void setPeerPort(quint16 port);
220 void setPeerAddress(
const QHostAddress &address);
221 void setPeerName(
const QString &name);
223 QAbstractSocket(SocketType socketType, QAbstractSocketPrivate &dd, QObject *parent =
nullptr);
226 Q_DECLARE_PRIVATE(QAbstractSocket)
227 Q_DISABLE_COPY_MOVE(QAbstractSocket)
229 Q_PRIVATE_SLOT(d_func(),
void _q_connectToNextAddress())
230 Q_PRIVATE_SLOT(d_func(),
void _q_startConnecting(
const QHostInfo &))
231 Q_PRIVATE_SLOT(d_func(),
void _q_abortConnectionAttempt())
232 Q_PRIVATE_SLOT(d_func(),
void _q_testConnection())