Как сделать RakNet более надежным?

Вот резюме, я отправляю пакет с сервера клиенту, запущенному на том же компьютере. По какой-то причине отправленный пакет не совпадает с полученным.

Вот подробности:

Пакет был отправлен с использованием RakNet с вызывающей функцией:

rakPeer->Send(&bitStream, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_RAKNET_GUID, true);

Вот первые 10 байтов пакета, отправленного сервером:
27,50,39,133,202,135,0,0,0,99 … еще 1180 байтов

Вот первые 10 байтов пакета, видимого принимающим клиентом (Примечание: 50% времени это правильно, другая половина — это):
27,50,43,40,247,134,255,255,255,99 … еще 1180 байт

Первый байт ID_TIMESTAMP, Байты 2-5 содержат метку времени, которую я предполагаю RakNet портит как-то. Байт 6 — это упакованный идентификатор, который четко изменен, а также следующие 3 байта.

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

Любая помощь приветствуется.

1

Решение

Хорошо для тех, кто имеет ту же проблему, вот решение.

Временные метки RakNet бывают 32- или 64-битными в зависимости от конфигурации вашей сборки. В этом случае я отправлял 32-битные метки времени, используя 64-битную сборку. Это нет-нет, так как RakNet изменит биты, которые он считает временной меткой, для учета относительного времени между компьютерами.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]