Показать сообщение отдельно
Непрочитано 19.01.2016, 23:31   #10
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Структура PROTOCOL_LOGIN_ACK

А это уже проблема в чтении. Как и раньше, может прилететь несколько пакетов в одном, и например, если там было 2 пакета подряд, вы их декрипнули как один, тогда у второго уже данные будут неверными.

while (received >= 6)
{
    int length = BitConverter.ToUInt16(buffer, 0) & 0x7FFF;
 
    byte[] temp = new byte[length + 2];
    Buffer.BlockCopy(buffer, 2, temp, 0, temp.Length);
 
    BitwiseHelper.Unshift(temp, bits);
 
    packetQueue.Enqueue(new ReceivePacketFrame(this, temp));
    received -= length + 4;
 
    Buffer.BlockCopy(buffer, length + 4, buffer, 0, received); // << Копируем оставшиеся данные в начало буфера
}
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием