Показать сообщение отдельно
Старый 04.05.2010, 22:44
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 29  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Начну с последних сообщений.

Цитата:
так как "подписывание" происходит на сервере, то подделать дату сообщения нереально.
Обобщу и скажу, что все, что происходит на сервере невозможно подделать. Сервер-то наш и не принадлежит злоумышленнику.

Цитата:
Передавать 1 байт туда-обратно раз в 1 секунду. <skipped> Таким образом, мы всегда имеем текущий пинг игрока.
Нужно все же определиться, что есть пинг. Клиент, отправляя т.н. ping может лишь замерить время отклика на этот пинг своего сетевого интерфейса. Представьте, что никакого "сервера" не существует. Просто есть пинг и есть понг-ответ. Замеряем время между клиентским запросом к интерфейсу и ответом от последнего. Т.о. никак не нужно умножать на два время между запросом и ответом. Другое дело, если в теле ответа (pong'е) есть временные метки получения запроса, начала ответа и пр. и ЕСЛИ время на обоих концах синхронизированно, то тогда есть возможность уточнить время "туда" и "обратно" отдельно. Но это "если" - сложная задача. В первом приближении пинг достигает сервера в течение "полное время запрос-ответ" пополам.

Добавлено через 7 минут
Цитата:
Достаточно команд "Вася начал идти" и "Вася кончил закончил идти", т.к. при TCP соединении пакеты доходят строго по очереди (нет смысла гонять туда-сюда "я иду" - "да, ты и вправду идешь")
Достаточно, я об этом и говорил. Только с учетом времени задержки сети лучше на клиенте идти сразу - передвигать персонажа по экрану и одновременно отсылать сообщение на сервер, что Вася "пошел". При этом, если по каким-то причинам сервер решит, что персонаж двигаться не может, то он отошлет обратно некоторое сообщение об этом.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.