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)
これらの例では、ヘッダー、つまり、既に長さがわかっているフィールドだけがありますが、ボディ フィールドを追加するにはどうすればよいでしょうか?