(я специально с использованием VB.net, протокол я имею в виду это для «Minecraft Server»)протокол Понимание сервера
У меня есть следующие ссылки для получения подробной информации о протоколе для сервера Делаю ,
Теперь, в соответствии с этим протоколом, первые три байта должны указать тип пакета. Я проверил фактический исходный код (в java) клиента, который будет подключаться к серверу, и подтвердил, что это правда.
Проблема состоит в том, что первые три байтовых значения должны быть шестым номером пакета.
Конкретный пакет, с которым я работаю (первый пакет проверки, отправленный клиентом).
протокол :: Client Server Рукопожатие: (я не имею достаточно высокий уровня репутации, чтобы отправить эту вторую ссылку, я отправлю его как обычный текст, а)
mc.kev009.com/wiki/Protocol # Client_to_Server_2
Я могу прочитать строку, представленную после первых трех байтов, которые показывают «имя пользователя», отправленное клиентом. Проблема в том, что я не знаю, как определить первые три. Это не то, что я ожидал.
Я предположил, что после преобразования всех результатов в читаемую строку первые три символа будут чем-то похожим на 002 или 200. Вместо этого я получил символы с кодами ASCII «2», «0» и «8», , Я знаю, что номер пакета равен 2, почему я получаю такой нечетный результат?
Вот код, я работаю с:
Код:
cWrite("Waiting for client initiated 'handshake'...")
Dim HandshakePacket As String = PW.getTextPackets(clientStream)
cWrite(HandshakePacket.Substring(3).Trim & " has requested the required 'handshake'...")
Try
Select Case Convert.ToInt32(HandshakePacket.Substring(0, 3), 16)
Case 2
cWrite("~HANDSHAKE PACKET~")
Case Else
cWrite("Packet id: " & Convert.ToInt32(HandshakePacket.Substring(0, 3), 16) & " not recognized!")
End Select
Catch ex As Exception
'???
End Try
-cWrite является функцией, которая в основном отображает информацию (форма отладки выход) -PW содержит свои классы для отправки/приема пакетов как в строковых, так и в байтовых формах. -PW.getTextPackets возвращает запрос, отправленный пакет уже преобразуется в ASCII от его формы байт по умолчанию -clientStream только основной поток из clientTcp
Может кто-нибудь дать мне подробную информацию о то, что я делаю неправильно?
Это изменение не нужно. Название должно оставаться таким, каким оно было. Мой вопрос, если вы даже приняли это во внимание, заключался в понимании отправленных мной байтов, не обязательно требуя, чтобы вы знали протокол вообще. Я включил информацию протокола ТОЛЬКО, чтобы вы могли сравнить ее с моим кодом, который я предоставил. – FreeSnow