一、描述
TCP服务端。接收传入的 TCP 连接。
二、成员函数
1、[signal] void acceptError(QAbstractSocket::SocketError socketError)
当接受新连接导致错误时发出此信号。
2、[signal] void newConnection()
每次有新连接可用时都会发出此信号。
3、void close()
关闭服务器。服务器将不再侦听传入连接。
4、QString errorString()
返回最后发生的错误的可读描述。
5、bool hasPendingConnections()
服务器是否有正在连接着的连接。
6、bool isListening()
服务器当前是否正在侦听传入连接。
7、bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0)
告诉服务器侦听address和port 传入的连接。如果端口为 0,则自动选择一个端口。如果地址是 QHostAddress::Any,则服务器将侦听所有网络接口。
8、int maxPendingConnections()
返的接受的最大连接数量。默认值为 30。
9、QTcpSocket * nextPendingConnection()
将下一个待处理的连接作为已连接的 QTcpSocket 对象返回。如果没有待处理的连接,该函数会返回
nullptr
。
10、void pauseAccepting()
暂停接受新连接。排队的连接将保留在队列中。
11、void resumeAccepting()
恢复接受新连接。
12、QHostAddress serverAddress()
如果服务器正在侦听连接,则返回服务器的地址;否则返回 QHostAddress::Null。
13、quint16 serverPort()
如果服务器正在侦听连接,则返回服务器的端口;否则返回 0。
14、QAbstractSocket::SocketError serverError()
返回最后发生的错误的错误代码。
15、void setMaxPendingConnections(int numConnections)
设置接受的最大连接数量。停止接受新连接,但操作系统可能仍将它们保留在队列中。
16、bool waitForNewConnection(int msec = 0, bool *timedOut = nullptr)
最多等待 msec 毫秒或直到传入连接可用。如果连接可用,则返回 true; 否则返回false。 如果操作超时并且timedOut 不是nullptr,*timedOut 将设置为true。
这是一个阻塞函数调用。 在单线程 GUI 应用程序中不建议使用它,因为整个应用程序将停止响应,直到函数返回。(非阻塞替代方法是连接到 newConnection() 信号。)
如果 msec 为 -1,则此函数不会超时。