如何检查 TCP 结构中的标志是否已设置?

How to check if flag in TCP struct is set?

我正在使用 pcap C 库读取数据包。目前,我使用以下方法检查 struct tcphdr 中的标志(此结构在 netinet/tcp.h 库中定义)是否已设置:

struct tcphdr *tcp = ....

if(tcp->th_flags & TH_SYN) {
        //SYN FLAG IS SET?
    }

这是否始终适用于检查结构中是否设置了特定标志?或者,还有更好的方法?非常感谢任何 advice/tips :)

我觉得不错。 TH_SYN 是一个位,因此如果在 th_flags.

中设置该位,则表达式将为真(非零)