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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Корректная передача по TCP  (Прочитано 5114 раз)
Vexator
Гость
« : Август 21, 2009, 04:25 »

Подскажите, как грамотно организовать взаимодействие QTcpSocket -> QTcpServer -> QTcpSocket, что бы обеспечить целостность передачи данных?
сейчас я делаю так, данные поступающие на вывод, помещаю в буфер, откуда считываю по одному блоку, отправляю его приемнику, тот получая его, анализирует целостность (по маркеру в конце блока) и отправляет ответ серверу готовность в получении следующего пакета... в случае повреждения пакета, отправляется просьба повторить последную посылку...
имеют ли смысл все эти танцы с бубном?
Записан
Rcus
Гость
« Ответ #1 : Август 21, 2009, 05:07 »

Это зависит от требований по надежности. В TCP/IP стеке уже есть базовые проверки целостности (на втором уровне и в самом протоколе tcp)
Записан
Vexator
Гость
« Ответ #2 : Август 21, 2009, 06:57 »

для ммо-игрушки это нормально? Улыбающийся
Записан
Rcus
Гость
« Ответ #3 : Август 21, 2009, 07:15 »

для ммо-игрушки это нормально? Улыбающийся
Я ковырял только один сетевой протокол от mmorpg (Anarchy Online) и никакой дополнительной подписи пакетов там не было.
Записан
BRE
Гость
« Ответ #4 : Август 21, 2009, 07:20 »

2 Vexator: Мне тоже кажется, что не стоить дополнительно проверять пакеты.
Если придет битый пакет, он будет отброшен на уровне стека (ты его все равно не получишь) и сам стек запросит его повторно.
Записан
Vexator
Гость
« Ответ #5 : Август 21, 2009, 07:48 »

Спасибо, тогда пока не буду городить все это Улыбающийся
Записан
Apostol
Гость
« Ответ #6 : Август 25, 2009, 00:49 »

В начале пакета его длина, в конце - контрольная сумма (4 байтика) - этого должно хватить (как пример из ММОРГ lineage2, про блуфиш шифрование я умалчу:) ) Если пакет не проходит проверку - повторный запрос ) Вот и все)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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