簡體   English   中英

QSslSocket waitForReadyRead似乎不起作用

[英]QSslSocket waitForReadyRead does not appear to be working

這是我編寫的同步TCP客戶端中read()語句上方的一小段代碼。

    std::cout << "available? " << socket->bytesAvailable() << std::endl;
    socket->waitForReadyRead();
    std::cout << "reading..." << std::endl;
    bytesRead = socket->read(message + totalBytesRead, messageSize - totalBytesRead);

下一行:

socket-> bytesAvailable()

返回4,因此顯然有可讀取的數據。 我遇到的問題是,waitForReadyRead()一直阻塞到默認的30秒超時為止。 Read()然后繼續在下一行讀取0個字節。

因此,如果有可供讀取的字節,為什么waitForReadyRead()會阻塞

來自QIODevice :: waitForReadyRead文檔:

阻塞,直到可以讀取新數據並且發出readyRead()信號為止,或者直到經過了毫秒(毫秒)。 如果毫秒為-1,則此功能不會超時。

如果有新數據可讀取, 返回true;否則返回true。 否則返回false(如果操作超時或發生錯誤)。

處理網絡連接的最佳方法是使用信號/插槽機制( 異步的原因)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM