Details
-
Bug
-
Resolution: Cannot Reproduce
-
P3: Somewhat important
-
None
-
5.9.1
-
None
-
qt application running on Windows 10.0.15063 Build 15063
Description
A QTcpSocket reading from a streaming source may stop reading data up until the operating system socket buffers fill on both parties if the user is opening a native file dialog or using the clipboard within the application. After reading everything from the socket, bytesAvailable() will remain at 0.
This problems only happens in the following scenario:
- QTcpSocket is connected to the streaming source (an iOS device) through a proxy (iproxy on macOS)
- the application opens a native file dialog (or interacts with the system clipboard)
When opening non-native dialogs (QFileDialog::DontUseNativeDialog) the problem does not occur anymore. Furthermore, if the user is simultaneously holding connected another instance of QTcpSocket to a different device (but with no proxy) the problem ceases. If the second connection is performed while the first socket is 'blocked', this socket will resume normal behaviour.
This problem does not occur on Linux or when using Winsock API. Disconnecting and reconnecting will solve the problem.