Hallo Stackoverflow-Community,Java ist mir eine andere Puffer des gleichen Pakets von dem in C geben
ich um diese Gemeinschaft immer für eine Weile gewesen ist, aber ich hatte noch nie ein solches Problem ohne jede andere Lösung online, oder zumindest konnte ich es nicht finden.
Ich verwende Java, um einen Client zu erstellen, sobald der Client eine Verbindung zum Server herstellt, erhält er ein Paket, das sinnvolle und wichtige Informationen enthält und natürlich verschlüsselt ist; Ich habe die Kryptographie, die hinter dem ganzen Prozess steckt, vor langer Zeit erfolgreich umgekehrt und sie ohne Probleme in C++ implementiert und vollständig mit positiven Ergebnissen getestet.
Jetzt versuche ich den Client in Java für Wissenschaft und bessere Codierungsgeschwindigkeit neu zu schreiben, aber das einzige Problem ist, dass das Paket anders ist, als es aussehen sollte. Zum Beispiel, indem ich das Paket mit einer C nativen Anwendung schnüffle bekomme ich einen Puffer, aber das gleiche Paket in meinem Java-Client ergibt sich anders. Was meine ich? Ich meine, dass es mehrere 0xFD/BF-Bytes gibt, die nicht gültig sind, was zu einem beschädigten Puffer und dann zu einem Entschlüsselungsfehler führt.
Dies sind die Screenshots, damit Sie besser verstehen,
Original-RICHTIG Paket Corrent packet
Dies wird das Paket von Java abgeladen ist, die CORRUPTED ist Incorrect packet
Ich bin Verwenden Sie Read als lesende Objektklasse für den outStream des Sockets. Haben Sie eine Idee über die Ursache des Problems?
private Reader _br = new InputStreamReader(socket.getInputStream());
char[] _data = new char[92];
this._br.read(_data);
_dump(toBytes(_data));
Ich habe nur die auf das Thema bezogenen Code.
Meine Kristallkugel funktioniert heute nicht. Sie müssen einen [MCVE] (http://stackoverflow.com/help/mcve) Code anzeigen, um eine Antwort zu erhalten. –