Gemäß der Python-Dokumentation gibt pythons socket recv() -Methode ein Array von 'Byte'-Typen zurück.Was genau kehrt soc.recv zurück?
Wenn Sie jedoch dieses Array aus, die Dinge, die wie Bytes sehen nicht auch erscheinen:
\xd9\x01\x01\xa4\xe9\xcbV6\x15\xed|>g5\xfa\xbd\xe9Q\[email protected]\x18\xff\
Hat das Python-Byte-Objekt einige interne Fehlerberichterstattung oder etwas? Was sind diese Byte-Objekte, die nicht als tatsächliche Bytes angezeigt werden?
Einige weitere ungerade Beispiele:
\x00w\xd4\x04;\x9c\x0b}>P]\xa4\xbd\xa5n:9x\xe3>9\xd2/~8\
\x01\x01\x1b ,Y\x00\x00\x00\x00\x00\xf4
\xa0A\n\xd7tB}\xed,\xc0\x00\
Also das Byte-Objekt selbst (wie in, nicht zu drucken) wird richtige Werte haben, auch wenn sie nicht innerhalb der ASCII-Codierung sind, richtig? – user1519665
Ja, wenn der Wert nicht ASCII-druckbar ist, erhalten Sie nur den Hexadezimalwert '\ x'. Wenn Sie sehen, was in Wireshark über den Draht geht, werden Sie sehen, dass die Werte genau das sind, was Sie erwarten. Dies ist lediglich ein Artefakt dafür, wie Python diese ausgibt. – shuttle87
In Ordnung, vielen Dank. Hoffentlich funktioniert der Rest der Logik dann richtig! – user1519665