在 Python 中从字节字符串中剪切前 20 个字节的最快方法是什么?



我使用的是一个TCP协议,它将数据包从发送方传递到接收方。我需要能够从内容中分离标题,这些内容填充了我的"数据包"

我的信头是这样包装

tcp_header = pack('!HHLLBBH', tcp_source, tcp_dest, tcp_seq, tcp_ack_seq, tcp_offset_res, tcp_flags,
                          tcp_window) + pack('H', tcp_check) + pack('!H', tcp_urg_ptr)

然后我的包被构造成这样的

packet = tcp_header + user_data

我像这个一样打开它

(tcp_source, tcp_dest, tcp_seq, tcp_ack_seq, tcp_offset_res, tcp_flags,
             tcp_window, tcp_check, tcp_urg_ptr) = unpack('!HHLLBBHHH', sent_packet)

但只有当我单独发送标头时,它才有效。如何在拆包之前将内容从标头中拆分?

感谢

您要查找的函数struct.unpack_from

struct.unpack_from('!HHLLBBHHH', sent_packet)

相关内容

最新更新