1
我想檢測多少字節可供閱讀:QTcpSocket->信息bytesAvailable總是返回0
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 state always connected, even unplugging ethernet wire
@thuga我使用'QRunnable'比'QThread',有事件循環在'QRunnable'? – CDT