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

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

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Обмен QTcpServer  (Прочитано 16390 раз)
Bepec
Гость
« Ответ #30 : Январь 31, 2015, 17:42 »

Могу даже навскидку предположить, что постоянная отправка пакетов блокируется системой.
Ведь вы посылаете не кусками, вы пытаетесь запихнуть 3 млн байт практически непрерывно в пакеты.

Потому решение вам будет - разбивайте и отправляйте кусками. Веселый

PS % на 70 уверен что ваша проблема спокойно разрешится Улыбающийся Хотя это потребует небольшого протокольчика с контролем количества кусков Улыбающийся
Записан
BigHom
Гость
« Ответ #31 : Февраль 02, 2015, 08:27 »

Разбивал на 400тыс байт - зависает на 4 -м нажатии кнопки "передать". При размере 600тыс. байт зависает на 3-й передаче. При разбивании на 48тыс. байт - зависает на 30-м нажатии кнопки "передать" - нажатие на кнопку эквивалентно разбиванию на пакеты?
« Последнее редактирование: Февраль 02, 2015, 08:41 от BigHom » Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #32 : Февраль 02, 2015, 10:54 »

Могу даже навскидку предположить, что постоянная отправка пакетов блокируется системой.
Ведь вы посылаете не кусками, вы пытаетесь запихнуть 3 млн байт практически непрерывно в пакеты.
Потому решение вам будет - разбивайте и отправляйте кусками. Веселый

в этом нет смысла ибо tcp сам это делает
Записан
Bepec
Гость
« Ответ #33 : Февраль 02, 2015, 11:31 »

Не скажите. TCP делает всё сам, но реализация TCP в каждой ОС разная.

Вот реплика BigHom о кнопке опровергает мою теорию, укладываясь в отложенные 30%.

Следовательно проблема всё же в системе. МСВС не пользовался и не особо интересовался, но тут надо смотреть на ограничения передачи Улыбающийся

И да, всё же QNAM должен выдавать ошибку после 30 секунд простоя. У вас QNAM связан со слотом ошибок?

PS имеется ли в сети связующие устройства типа роутера? Есть ли у этого устройства межсетевой экран и включен ли он? Если включен, то надо попробовать повторить эксперимент с отключенным экраном и просмотреть журнал событий/блокировок.
« Последнее редактирование: Февраль 02, 2015, 11:35 от Bepec » Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #34 : Февраль 02, 2015, 11:58 »

Не скажите. TCP делает всё сам, но реализация TCP в каждой ОС разная.

смысл бить я вижу только один - делать прогресс для пользователя - чтобы он мог контролировать процесс
но если всего 10 мег переслать по локалке 100мбит, то  бить смысла нет - влетит за 1 сек
и да - это не проблема ТС - чтото у него не так в системах, а сниффером он пользоваться не умеет

совет ТС - поставь виртуалку - туда две МСВС - все работать должно, далее ищи различия
Записан
BigHom
Гость
« Ответ #35 : Февраль 04, 2015, 13:52 »

Поставил 2 виртуалки с МСВС - программы клиент и вервер друг друга не видят. Если пускать на одной машине , то никаких зависаний(ограничений при передаче) нет, если дать имя  server1
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #36 : Февраль 04, 2015, 14:23 »

Поставил 2 виртуалки с МСВС - программы клиент и вервер друг друга не видят.

Значит сеть не настроена. Если виртуалка vmware , то надо тип сети сделать NAT, тогда машины автоматом получат IP и их можно пингануть друг другом.
В программе server1 надо заменить на IP т.к. vmware не предоставляет DNS сервер в себе.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


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