python tcp 套接字值错误

python tcp socket wrong value

我使用 python 通过 tcp 套接字连接 rfid 设备。

这是基本代码

HOST = '192.168.1.159'
PORT = 4001
from socket import *
def main():
    tcp_client_socket = socket(AF_INET,SOCK_STREAM)
    tcp_client_socket.connect((HOST,PORT))
    while True:
        recv_data = tcp_client_socket.recv(10240)
        if recv_data:
            print(recv_data)
        else:
            break
    tcp_client_socket.close()
if __name__ == '__main__':
    main()

然后我会收到这样的值

b'\xa0\x13\x01\x89\x1c4\x000\x083\xb2\xdd\xd9\x01@\x00\x00\x00\xa4pK'

但是 tcp socket 测试工具收到的值是这样的

A0 13 01 89 1C 34 00 30 08 33 B2 DD D9 01 40 00 00 00 A4 70 4B

检查亮点部分。

我喜欢

print(recv_data.decode())

然后收到

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 0: invalid start byte

我不知道如何解决这个问题。有人可以帮忙吗?请

我解决了我的问题

print(recv_data.hex())

然后收到

a00a018900000500000001c6

并发送数据

    packet = bytearray()
    packet.append(0xA0)
    packet.append(0x04)
    packet.append(0x01)
    packet.append(0x74)
    packet.append(0x00)
    packet.append(0xE7)
    packet.append(0xA0)
    packet.append(0x04)
    packet.append(0x01)
    packet.append(0x89)
    packet.append(0x01)
    packet.append(0xD1)
    tcp_client_socket.send(packet)