Как узнать получил клиент данные от сервер через UDP?

Я использую

#include <WinSock2.h>
#include <Ws2tcpip.h>

У меня есть сервер и есть клиенты, сервер принимает UDP запросы.

Я отправлю запросы от клиента серверу, сервер отдает ответ. Как определить, клиент получил или не получил ответ от сервера.

Сейчас я думаю над двумя вариантами:

  1. клиент сам должен об этом сообщить серверу.
  2. сервер должен сам проверить клиента.

Представьте гоночную трассу, два квадрата(клиент) соревнуются кто первый, они оба отправляют запросы на сервер, сервер выдает ответ.

Теперь один квадрат отправляет запрос серверу и сообщает место положение. сервер отсылает ответ что он попал под препятствие, то есть врезался но клиент не получил эти данные и потерял.

Отсылает снова запрос о место положении, сервер отсылает ему новые данные и когда клиент их получает он понимает что его телепортирует, возможно вы видели такое в GTA 5

Что бы это избежать, сервер должен отсылал старые данные, тогда клиент плавно получит данные о препятствие и обработает ситуацию столкновения.


Ответы (1 шт):

Автор решения: Виктор

Добавьте пакетам порядковые номера. Если номера идут не подряд, то пакеты с выпавшими номерами потерялись.

→ Ссылка