我使用的是一个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)