我正在尝试对来自Labview的TCP数据进行解码。我想发送4位标题,表示消息的长度。
我的LabVIEW成功将4个字节发送给Python。并且Python接收b'\ x00 \ x00 \ x00 \ x016',清楚地表示一个信息字节。
然后我如何将命令解码回整数长度,以便可以在消息的其余部分中读取其他内容?
这是我的python脚本:
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('localhost', 9991))
server.listen(1)
while True:
conn, addr = server.accept()
messagelen = conn.recv(4)
print(messagelen)
bits = bytes.decode(messagelen)
print(bits)
server.close()
您确定收到的字节不是b'\x00\x00\x00\x16'
吗?如果是,则可以使用struct模块解压缩。
import socket
import struct
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('localhost', 9991))
server.listen(1)
while True:
conn, addr = server.accept()
bits = conn.recv(4)
messagelen = struct.unpack('>i', bits)[0]
print(messagelen)
server.close()