假设我们定义了一个用户级的TCP数据包解析协议,如下所示。
A User-Level TCP Packet:
---------- ------ ---------- ----------------------------
| F1F2F3F4 | Type | Length | Packet Body |
---------- ------ ---------- ----------------------------
1. F1F2F3F4: beginning of a packet, hex data (4 bytes)
2. Type: denotes what type of this packet (2 bytes)
3. Length: how many bytes the packet contains except F1F2F3F4
Packets may have different length (2 bytes)
4. PacketBody: Real data a packet contains
假设我们有一对TCP通信,它们通过发送这种格式的数据包来相互交换数据。通信者发送一时之间,大量的数据包通过一个套接字,有时他们甚至以这种方式发送文件。
在C/C++语言中,我将分配一个足够大的缓冲区来存储从套接字中读取的数据,然后扫描F1F2F3F4缓冲区内的,并找到Length字段。
如果该数据小于Length,然后等待更多。
现在我需要在Python中实现这一点,有人知道怎么做吗?