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 virtual bool waitForConnected(
int msecs = 30000);
174 bool waitForReadyRead(
int msecs = 30000) override;
175 bool waitForBytesWritten(
int msecs = 30000) override;
176 virtual bool waitForDisconnected(
int msecs = 30000);
178#ifndef QT_NO_NETWORKPROXY
179 void setProxy(
const QNetworkProxy &networkProxy);
180 QNetworkProxy proxy()
const;
181 QString protocolTag()
const;
182 void setProtocolTag(
const QString &tag);
189 void stateChanged(QAbstractSocket::SocketState);
190 void errorOccurred(QAbstractSocket::SocketError);
191#ifndef QT_NO_NETWORKPROXY
192 void proxyAuthenticationRequired(
const QNetworkProxy &proxy, QAuthenticator *authenticator);
196 qint64 readData(
char *data, qint64 maxlen) override;
197 qint64 readLineData(
char *data, qint64 maxlen) override;
198 qint64 skipData(qint64 maxSize) override;
199 qint64 writeData(
const char *data, qint64 len) override;
201 void setSocketState(SocketState state);
202 void setSocketError(SocketError socketError);
203 void setLocalPort(quint16 port);
204 void setLocalAddress(
const QHostAddress &address);
205 void setPeerPort(quint16 port);
206 void setPeerAddress(
const QHostAddress &address);
207 void setPeerName(
const QString &name);
209 QAbstractSocket(SocketType socketType, QAbstractSocketPrivate &dd, QObject *parent =
nullptr);
212 Q_DECLARE_PRIVATE(QAbstractSocket)
213 Q_DISABLE_COPY_MOVE(QAbstractSocket)
215 Q_PRIVATE_SLOT(d_func(),
void _q_connectToNextAddress())
216 Q_PRIVATE_SLOT(d_func(),
void _q_startConnecting(
const QHostInfo &))
217 Q_PRIVATE_SLOT(d_func(),
void _q_abortConnectionAttempt())
218 Q_PRIVATE_SLOT(d_func(),
void _q_testConnection())