我需要将0xFE(十六进制值)发送到通过TCP连接的设备。我尝试了以下代码,并在Packet Sender上观察到了数据,该数据在ASCII列中的值为0xFE,十六进制值为“ 30 78 66 65”。我已经尝试过binascii.hexlify和其他许多策略,但是似乎都没有用,因为我没有获得“ FE”十六进制值。
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('192.168.10.10',59354))
s.sendall(hex(int('FE',16)).encode())
s.close()
[hex(int('FE',16))
将直接返回"0xfe"
:字符零(“ 0”),后跟三个ASCII字母:"x"
,"f"
和"e"
。
这正是您收到的:
>>> bytes.fromhex("30 78 66 65")
b'0xfe' # FOUR bytes
要发送字节0xfe
,请使用例如s.sendall(b'\xfe')
或(0xfe).to_bytes(1, 'little')
。