(je suis spécifiquement en utilisant VB.net, le protocole, je fais allusion à un « Minecraft Server »)Protocole Comprendre Server
je le lien suivant pour plus de détails sur le protocole pour un serveur que je fais .
Maintenant, selon ce protocole, les trois premiers octets doivent spécifier le type de paquet. J'ai vérifié le code source réel (en java) du client qui se connectera au serveur, et vérifié que ceci est vrai.
Le problème est que les trois premières valeurs d'octets devraient être l'hex du numéro du paquet.
Le paquet spécifique avec lequel je travaille (le premier paquet de vérification envoyé par le client).
du Protocole de Handshake Server Client: (Je n'ai pas un niveau de réputation assez élevé pour poster ce second lien, je vais le publier sous forme de texte au lieu)
mc.kev009.com/wiki/Protocol # Client_to_Server_2
Je peux lire la chaîne fournie après les trois premiers octets qui montrent le "nom d'utilisateur" envoyé par le client. Le problème est, je ne sais pas comment identifier les trois premiers. Ce n'est pas ce à quoi je m'attendais. Je supposais qu'après avoir converti les résultats entiers en une chaîne lisible, les trois premiers caractères seraient quelque chose de similaire à 002 ou 200. Au lieu de cela, j'ai reçu des caractères avec les codes ASCII de "2", "0" et "8" . Je sais que le numéro de paquet est 2, pourquoi suis-je obtenir un résultat si étrange?
Voici le code Je travaille actuellement avec:
code:
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 est une fonction qui affiche essentiellement les informations (une forme de sortie de débogage) -pw contient mes classes pour envoyer/recevoir des paquets sous forme de chaîne et d'octet. -PW.getTextPackets renvoie le demande envoyée par le paquet déjà converti en ASCII de sa forme d'octets par défaut -clientStream est que le flux sous-jacent de la clientTcp
Quelqu'un pourrait-il me donner des détails sur ce que je fais mal?
Cette modification était inutile. Le titre doit rester tel qu'il était. Ma question, si vous en avez même tenu compte, consistait à comprendre les octets qui me sont envoyés, sans nécessairement exiger que vous connaissiez le protocole. J'ai inclus les informations de protocole SEULEMENT afin que vous puissiez le comparer avec mon code que j'ai fourni. – FreeSnow