Показать сообщение отдельно
Старый 14.11.2013, 16:34
Фенёк вне форума Посмотреть профиль Отправить личное сообщение для Фенёк Найти все сообщения от Фенёк
  № 1  
Ответить с цитированием
Фенёк

Регистрация: May 2011
Сообщений: 221
Question realtime передача координат

Доброго всем дня, давеча столкнулся с такой проблемой:

С товарищем напару пишем онлайн игрушку. Решили использовать TCP протокол для передачи данных, после чего сразу же стали наступать на всевозможные неприятности при его использовании, как то, например отправка нескольких "пакетов" одной большой пачкой в склеенном виде.

Решение для этой проблемы нашлось довольно быстро: стали просто обозначать заголовки у пакетов, после чего "слипшиеся" фрагменты пакетов перестали представлять собой проблему.

На клиенте я реализовал таймер той же длительности, что и время цикла отправки сообщений на сервере. Итого, раз в определенный промежуток времени, я просто вычитываю из потока пакет. вся фигня в том, что иногда в поток пакет еще не пришел целиком и клиент продолжает ждать, до следующего тика, пока пакет не будет собран полностью, вследствие чего игрок на поле постоянно "дрыгается".

Занятная закономерность состоит в том, что если клиент постоянно посылает серверу данные, то получает он их в ответ с меньшей задержкой.

как вылечить багу?