Python从LabVIEW解码TCP

问题描述 投票:0回答:1

我正在尝试对来自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()

LabVIEW script

python decode labview
1个回答
0
投票

您确定收到的字节不是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()
© www.soinside.com 2019 - 2024. All rights reserved.