Russian Qt Forum

Qt => Работа с сетью => Тема начата: lit-uriy от Январь 30, 2017, 06:59



Название: QWindowsPipeWriter::write failed. (Идет закрытие канала.)
Отправлено: lit-uriy от Январь 30, 2017, 06:59
Qt 5.7.0

Взялся помучить пример Fortune Server / Fortune Client

Сначала запускаю клиент, затем сервер, и только потом нажимаю в клиенте кнопку "Get Fortune", которая запрашивает у сервера очередную строку текста.
После нажатия кнопка становиться неактивной, пока не придёт ответ от сервера.

Проблема:
Иногда кнопка остаётся вечно неактивной, в код сервера добавил отладки (void Server::sendFortune()):
Код
C++ (Qt)
qDebug() << "Before write state:" << clientConnection->state();
clientConnection->write(block);
qDebug() << "After write state:" << clientConnection->state();
 
Если всё хорошо - печатается такое:
Цитировать
Before write state: QLocalSocket::ConnectedState
After write state: QLocalSocket::ConnectedState

а когда кнопка залипает - печатается такое:
Цитировать
Before write state: QLocalSocket::ConnectedState
QWindowsPipeWriter::write failed. (Идет закрытие канала.)
After write state: QLocalSocket::ConnectedState

Дополнение:
Код
C++ (Qt)
clientConnection->write(block);
Записывает всегда все байты

В чём может быть дело?