Writing a cross platform app using Qt (including Windows with MinGW). For reading data from SSL socket, I am creating a separate thread. This thread is there for historical reason, because earlier the app was written using C socket/ssl/crypto libraries. Now all these are being replaced with Qt Network library.
For blocking thread, waitForReadyRead(milliseconds) seems a better choice. Now according to Qt hierarchy:
QIODevice
|
QAbstractSocket
|
QTcpSocket
|
QSslSocket
Documentation of QAbstractSocket::waitForReadyRead() suggests:
But the similar warning is Not mentioned in the QIODevice::waitForReadyRead().Note: This function may fail randomly on Windows. Consider using the event loop and the readyRead() signal if your software will run on Windows.
Question: Is QSslSocket::waitForReadyRead() consistently usable for all the platforms?
This query is also posted on stackoverflow: https://stackoverflow.com/q/44544684/514235
---
Why am I not using `readyRead()` signal?
For some strange reason, if I `slot` some method with `readyRead()` then it's not getting called. Moreover, the `QSslSocket::write()` also doesn't work, which works otherwise with above approach. Due to complexity of my code, I am unable to present it here.
Bookmarks