接收到的套接字数据中缺少数据(modbus)
Missing data(modbus) in the socket data received
我正在通过套接字客户端工具发送 modbus 数据。我编写了一个小型服务器程序来接收传入的数据。我在套接字测试工具中收到的数据(十六进制)符合预期。但是,我在程序中收到的数据是一些垃圾数据。
程序数据(ScreenShot):
...
RECIEVED: Wed Sep 19 16:34:25 2018 b'\x01\x04\x04Cgq\xc0{\xdf'
软件数据(ScreenShot):
01 04 04 43 67 71 c0 7b df
import socket
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip = '192.168.10.3'
port = 4196
address = (ip,port)
client.connect(address)
print("connected")
datasent = client.send(b"\x01\x04\x00\x00\x00\x02\x71\xcb")
print(datasent)
data= client.recv(1024)
print(" ".join("{:02x}".format(byte) for byte in (data)))
它们是完全相同的字节。它们只是以不同的方式显示。 python 解释器尽可能将字节值显示为 ASCII 字符。也就是说,十六进制字节 43 67 71
是 ASCII 字符 'Cgq',依此类推。 Python 仅显示非 ASCII 字符的 \xNN
格式。
而不只是 print
ing str(data)
,试试这个让它看起来相似:
print("RECEIVED:", time.ctime(), " ".join("{:02x}".format(byte) for byte in data))
我正在通过套接字客户端工具发送 modbus 数据。我编写了一个小型服务器程序来接收传入的数据。我在套接字测试工具中收到的数据(十六进制)符合预期。但是,我在程序中收到的数据是一些垃圾数据。
程序数据(ScreenShot):
...
RECIEVED: Wed Sep 19 16:34:25 2018 b'\x01\x04\x04Cgq\xc0{\xdf'
软件数据(ScreenShot):
01 04 04 43 67 71 c0 7b df
import socket
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip = '192.168.10.3'
port = 4196
address = (ip,port)
client.connect(address)
print("connected")
datasent = client.send(b"\x01\x04\x00\x00\x00\x02\x71\xcb")
print(datasent)
data= client.recv(1024)
print(" ".join("{:02x}".format(byte) for byte in (data)))
它们是完全相同的字节。它们只是以不同的方式显示。 python 解释器尽可能将字节值显示为 ASCII 字符。也就是说,十六进制字节 43 67 71
是 ASCII 字符 'Cgq',依此类推。 Python 仅显示非 ASCII 字符的 \xNN
格式。
而不只是 print
ing str(data)
,试试这个让它看起来相似:
print("RECEIVED:", time.ctime(), " ".join("{:02x}".format(byte) for byte in data))