擅长:python、mysql、java
<p>通常不会使用<code>struct.pack</code>将长度头和值放在一起。相反,您只需执行<code>struct.pack(">h", len(data))</code>,通过线路发送(例如在网络协议中),然后发送数据。不需要创建新的字节缓冲区。</p>
<p>在您的情况下,您可以简单地执行以下操作:</p>
<pre><code>dataLength, = struct.unpack(">h", t[:2])
data = t[2:2+dataLength]
</code></pre>
<p>但正如我所说,如果你有一个基于套接字的应用程序,它会是这样的:</p>
<pre><code>header = receive(2)
dataLength, = struct.unpack(">h", header)
data = receive(dataLength)
</code></pre>