我正在用 Python 开发一个 TCP 客户端。当我想将结构发送到服务器时,我的问题就出现了,我使用struct.pack()
发送和struct.unpack()
接收的方法。我有自己的 TCP 协议,有一些我已经知道它们长度的标头,但是当然,我不知道正文的长度,我怎么能在不知道正文长度的情况下打包所有字段?这是一个例子:
对服务器的请求:
pack('!BBBBHHII', P2P_h.version, P2P_h.ttl, P2P_h.msgType, P2P_h.reserved, P2P_h.sendPort, P2P_h.payloadLength, P2P_h.ipSrc, P2P_h.messageId)
来自服务器的响应:
queryHit = unpack ("!BBBBHHII", queryResponse)
在这些示例中,只有标题,我的意思是,我已经知道它们的长度的字段,我如何添加正文字段?