簡體   English   中英

Python 從 LabVIEW 解碼 TCP

[英]Python decode TCP from LabVIEW

我正在嘗試解碼來自 labview 的 TCP 的數據。 我想發送 4 位 header 表示消息后跟的長度。

我的 LabVIEW 成功地將 4 字節發送到 Python。 並且 Python 收到 b'\x00\x00\x00\x016' 這清楚地表示一個字節的信息。

然后如何將命令解碼回 integer 長度,以便我可以在消息的 rest 中進行額外讀取?

這是我的 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腳本

你確定你收到的字節不是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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM