生のバイナリデータを使ってtcpフレームを構築する必要がありますが、バイトについて話したすべての例とチュートリアルでは、常に文字列からの変換が必要です。要するにPython 3バイト配列を構築する
、私は単なるバイトの配列を構築する必要があります:
0xA2 0x01 0x02 0x03 0x04
私はC/C++の世界から来ていることに注意してください。
私はこの試みた:私が欲しいものが含まれていないフレームとして期待通り...その後
frame = b""
frame += bytes(int('0xA2',16))
frame += bytes(int('0x01',16))
frame += bytes(int('0x02',16))
frame += bytes(int('0x03',16))
frame += bytes(int('0x04',16))
は、ソケットの方法を送信するには、このフレーム変数を投げるが、動作していない
私はこれがPythonに関する非常に基本的な質問であることを知っています。正しい方向に私を指すことができれば...
上記のコードの問題は、リストの代わりに整数が与えられた場合、 'bytes'は非常に異なった動作をすることです。 'frame + = bytes([int( '0xa2'、16)])'を使うべきです。 –
私はあなたがこれを動的に行うことを望んでいることを知っていますが、完全にはわかりませんが、入力バイトはどこから来ますか?あなたはテキストファイルから16進表記を読みますか?各バイトをソースコードに書き留めますか?あなたはstdinからバイナリを読んだことによって得たbytearrayにそれらを持っていますか? –