客户端
abort()
QTcpSocket 中的 abort() 函数可以用于立即关闭一个连接,它的作用相当于调用 disconnectFromHost() 函数并且立即关闭连接,同时也会清除所有等待写入的数据。与 disconnectFromHost() 不同,abort() 不会等待套接字缓冲区中的数据发送完毕,而是直接关闭连接。所以,如果你想要立即关闭一个连接,可以使用 abort() 函数。
需要注意的是,abort() 函数可能会导致数据丢失,因为它不会等待所有数据都被发送出去。另外,如果在调用 abort() 函数之后立即调用 connectToHost() 函数建立新的连接,可能会导致错误。所以,在使用 abort() 函数时,需要仔细考虑它的使用场景和可能带来的影响。
waitForConnected()
QAbstractSocket::waitForConnected
是一个阻塞函数,直到套接字连接成功或者超时才会返回。该函数的用法如下:
bool QAbstractSocket::waitForConnected(int msecs = 30000)
其中
msecs
参数表示等待连接的毫秒数,默认为 30 秒。如果在指定的时间内连接成功,则返回true
,否则返回false
。
QByteArray
是 Qt 框架中用于存储字节数组的类。
QIODevice::ReadWrite
QIODevice::ReadWrite
:文件以读写的方式打开
服务器端
hasPendingConnections()
bool hasPendingConnections() 如果服务器有挂起的连接,则返回 true。
nextPendingConnection()
当QTcpServer收到一个客户端连接的时候,会发送一个信号void newConnection()。在接收信号的槽函数中调用nextPendingConnection()函数获得与客户端连接的QTcpSocket对象。
peerAddress()、peerPort()