我正在使用 TCP 协议(protocol)将数据包从发送方传递到接收方。我需要能够从填充我的“数据包”的内容中分离出标题。
我的标题是这样打包的
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)
但只有当我单独发送 header 时它才有效。如何在解包前拆分标题中的内容?
谢谢
最佳答案
你要找的函数struct.unpack_from
,
struct.unpack_from('!HHLLBBHHH', sent_packet)
关于python - 在 Python 中从字节字符串中删除前 20 个字节的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36685097/