我想检测有多少字节可供读取:
while( socket->ConnectedState == QTcpSocket::ConnectedState ) {
if(socket->bytesAvailable() > 0)
qDebug("%d", test->bytesAvailable());
}
我确定套接字已连接,但byteAvailable
无论我从另一端写入多少字节,它的返回值似乎始终为 0。
但是当我在断开连接后检测到:
if (! socket->waitForDisconnected(-1)) {
qDebug("Failed to receive disconnect message from client");
}
else {
qDebug("%d", socket->bytesAvailable());
qDebug(socket->readAll());
qDebug("Disconnected from client");
}
}
发送到调试窗口的信息是合理的:8 ABCDEFGH
。
什么可能导致这种情况发生?
PS:
这似乎也是一个死循环,因为即使在我与另一端断开连接后它也会继续运行。可能是这个原因:QTcpSocket 状态总是连接,甚至拔掉网线