Necesito construir un marco tcp con datos binarios en bruto, pero todos los ejemplos y tutoriales que he encontrado hablando de bytes siempre implican la conversión de una cadena, y eso no es lo que necesito.Python 3 Creando una matriz de bytes
En resumen, tengo que construir solo una matriz de bytes:
0xA2 0x01 0x02 0x03 0x04
Tenga en cuenta que vengo de C/C++ mundo.
He intentado esto:
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))
A continuación, tirar marco de esta variable para enviar método de toma, pero no funciona como se esperaba como trama no contiene solo lo que quiero ...
Sé que esta es una pregunta muy básica sobre Python, así que si me pueden señalar en la dirección correcta ...
El problema con el código anterior es que 'bytes' se comporta de manera muy diferente si se le da un número entero en lugar de una lista. Debería usar 'frame + = bytes ([int ('0xa2', 16)])'. –
Sé que quiere (ed) hacer esto de forma dinámica, pero lo que no está del todo claro es esto: ¿de dónde vienen los bytes de entrada? ¿Lees la notación hexadecimal desde un archivo de texto? ¿Escribes cada byte en el código fuente? ¿Los tienes en un bytearray que obtuviste leyendo binary de stdin? –