我正在尝试解码通过TCP从labview传来的数据。我想发送4位报头,表示消息的长度,后面跟着消息。
我的LabVIEW成功地将4个字节发送给了Python。Python接收b‘\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()发布于 2020-04-30 18:34:24
你确定你收到的字节不是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()https://stackoverflow.com/questions/61505977
复制相似问题