LINUX.ORG.RU

qtcpsocket не срабатывает readyread

 , , ,


0

2

Делаю опрос железа, серверная сторона на плис разрабатывается. По запросу сервер начинает сыпать непрерывный поток данных, читаю через readyread, но в какой-то момент (обычно через 2-3 минуты) перестает срабатывать readyread. Пробовал по таймеру в этот момент опросить bytesAvailable, возвращает 0. Wireshark показывает пакеты от сервера летят - retransmishion. Но почему-то клиент их не видит и не может считать. Подскажите, куда копать, в чем проблема ?

Мне кажется, что проблема в реализации TCP на стороне сервера, копать цепочку TCP пакетов с самого начала на предмет нарушений стандарта

Для подтверждения гипотезы можно сделать простенький тестовый сервер на какой-нибудь скриптоте, посылающий тестовые или случайные данные, которые клиент в состоянии принять

annulen ★★★★★
()

Еще можно попробовать клиента заменить на неткат или скрипт

annulen ★★★★★
()
Ответ на: комментарий от annulen

Проблема наблюдается на обоих осях: линукс и виндовс. Также другой клиент на python написан, подобное и там. Вот на счет копать tcp цепочку, смотрю wireshark, там идет обмен с ack подтверждением от клиента, потом эти ack пропадают и только от сервера пакеты падают.

dibr0v72
() автор топика
Ответ на: комментарий от dibr0v72

Проблема наблюдается на обоих осях: линукс и виндовс. Также другой клиент на python написан, подобное и там.

Подтвержадет проблему на стороне плис

Вот на счет копать tcp цепочку, смотрю wireshark, там идет обмен с ack подтверждением от клиента, потом эти ack пропадают и только от сервера пакеты падают.

ack посылает ядро, проблема в полученных пакетах. Возможно, что-то не так с window size

annulen ★★★★★
()

А ты все данные вычитываешь из QTcpSocket при получении readyRead? По умолчанию он данные буферизирует, точнее это делает его родитель QIODevice.

BRE ★★
()
Ответ на: комментарий от BRE

Сколько мне выдает bytesAvailable, столько и считываю.

dibr0v72
() автор топика

чини стек в fpga

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.