Russian Qt Forum
Ноябрь 23, 2024, 08:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: "Левые" пакеты с непонятно чем при передаче через QTCPSocket  (Прочитано 10969 раз)
OKTA
Гость
« Ответ #15 : Март 03, 2014, 14:18 »

Я конечно не специалист, но это нормально делать exec лупу в while?
Записан
Bepec
Гость
« Ответ #16 : Март 03, 2014, 14:32 »

Ххы.
Интересно как ТС собирается останавливать этот поток, если нигде нет прерывания лупа Улыбающийся

Не, по архитектуре он там необходим как бы, но вот что дальше Улыбающийся

Записан
vulko
Гость
« Ответ #17 : Март 03, 2014, 15:41 »

Ххы.
Интересно как ТС собирается останавливать этот поток, если нигде нет прерывания лупа Улыбающийся

Не, по архитектуре он там необходим как бы, но вот что дальше Улыбающийся

running = false,
socket disconnect - у лупа вызывается слот quit().

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

п.с. все это конечно интересно, но все таки хотелось бы понять причину проблемы, описанной в этом топике Подмигивающий
Записан
Bepec
Гость
« Ответ #18 : Март 03, 2014, 15:44 »

А по хорошему надо бы снифером полирнуть пакеты и выложить парочку нормальных и свой ненормальный Веселый

Уже ответил я вам. Работа Qt сомнению не подлежит (хотя бывает, бывает. Испортить можно всё).  Подлежит сомнению ваш код и ваши данные и ваша сеть и ещё всё то, что у вас Веселый

PS вы уже херн*й страдаете полдня. Разберитесь с сниффером и в путь. А без фактов могу ток посоветовать обратиться к духу ванги Показает язык
Записан
vulko
Гость
« Ответ #19 : Март 03, 2014, 16:29 »

А по хорошему надо бы снифером полирнуть пакеты и выложить парочку нормальных и свой ненормальный Веселый

Уже ответил я вам. Работа Qt сомнению не подлежит (хотя бывает, бывает. Испортить можно всё).  Подлежит сомнению ваш код и ваши данные и ваша сеть и ещё всё то, что у вас Веселый

PS вы уже херн*й страдаете полдня. Разберитесь с сниффером и в путь. А без фактов могу ток посоветовать обратиться к духу ванги Показает язык
Не стоит переживать, я занимаюсь другими делами) Сокеты пока не горят, данные идут, периодически правда размер пакета тупит, но это пока не критично.

Данные у меня генерируются при старте сервера, с каждым запросом к ним рандомно +/- небольшая дельта. Сеть... ну ладно линух под виртуалкой, но и на винде та же история.
Qt сомнению не подлежит... ой не смеши Улыбающийся Любой мало мальски большой продукт подлежит сомнению.

Ванговать смысла не вижу. tcpSocket->size() периодически возвращает 4224 байта, а через пару строк кода уже 128 байт. Причина тут может быть как в сети, так и в QT, так и в конкретной реализации, т.к. есть поток, есть луп, который обрабатывает ивенты и месаджи.

Прикрепил pcap файл, кривой размер пакета случился почти сразу. Собсно после этого сокет не использовался.
Если вы можете что-то понять из этого, буду благодарен. Я кроме как размера физических пакетов, ничего полезного не увидел. В основном пакеты там около 60 байт, есть некоторые по 1514 байт, но определить где мои пакеты, а где не мои я не могу.
Как уже ранее упоминал, порты там совершенно левые, а не 777 порт, который я использую при коннекте к серверу.
Записан
Bepec
Гость
« Ответ #20 : Март 03, 2014, 16:46 »

offtop: чем чаще проект используется, тем меньше ошибок. А по частоте использование ваш код проигрывает Qt Показает язык

А теперь настало время пыток Улыбающийся
Ip вашего сервера и клиента. (Что откуда и куда)
Адрес порта подключенного клиента (спокойно выясняется на клиенте peerPort () или localPort () ).
пакет ваших данных. Точнее блок, отправляемый сервером выведите в QByteArray().toHex().
И тогда уже можно что-то смотреть Веселый

PS и вообще хорошо, если вы этот блок сделаете постоянным(одинаковым), чтоб сервер шмалял одно и то же Улыбающийся

update: у вас там принтер не шалит? Веселый HP фирмы Показает язык Это ваш загадочный пакет.
Код:
ToneValue.1.HPPrintOnBothSidesManually.False.HPPaperSizeDuplexConstraints.EXECUTIVE.HPMediaTypeDuplexConstraints.
HEAVY.HPPCL6PassThrough.True.HPStraightPaperPath.False.HPPageExceptionsFile.HPCPE093.HPPageExceptionsLowEnd.HPPageExceptionsLowEndVer.
HPPageExceptionsInterface.ShowPageExceptions.HPPageExceptions.CoverInsertion.PSAlignmentFile.HPCLS093.PSServicesOption.HPServiceFileNameEnd
.HPSmartHub_Onlinediagnostictools.TRUE.HPSmartHub_Supportandtroubleshooting.TRUE.HPSmartHub_Productmanuals.TRUE.HPSmartHub_Checkfordriverupdates.
TRUE.HPSmartHub_Ordersupplies.TRUE.HPSmartHub_Showmehow.TRUE.HPSmartHub.Inet_SID_263_BID_514_HID_265.HPConsumerCustomPaper.True.JRConstraints.
JRCHDPartial.HPPreAnalysis.True.HPManualDuplexDialogModel.Modeless.HPManualDuplexPageOrder.EvenPagesFirst.HPCustomDUplexableRange.3x5_8.5x14
.HPMapManualFeedToTray1.True.HPManualDuplexPageRotate.DriverRotate

update: а мб это и есть ваш ответ Веселый Драйвер скорее всего данные эти забирает  сразу. Потому в буфере у вас остаётся только ваш пакет.
« Последнее редактирование: Март 03, 2014, 16:56 от Bepec » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 21.