如何让套接字编程接收的数据包的TCP报头?(how to get the tcp header of

2019-08-17 14:37发布

我想每个接收TCP数据包的TCP报头(发往特定的程序,即一个端口),它似乎无法使用的recv()或recvfrom的()使用普通插座得到TCP报头。

所以,我想用原始套接字与原始套接字,我可以使用recvfrom,()接收发往如果主机收到大量的数据包,我需要检查每一个数据包的端口号,看它是否是主机的所有IP数据包所需要的。 那么它可能是非常耗费时间和CPU comsuming?

while()
{
recvfrom();
check_port_number(); 
}

请问有什么好的方法可以得到一个接收TCP数据包的TCP报头? 我与Linux下C的工作,因此该解决方案应该是Linux下C为主。 谢谢!

Answer 1:

你想使用libpcap的 API,而不是套接字API。 libpcap的让你阅读包马上电线。

你可以用它来缓解解析数据包的另一个库的libnet。



文章来源: how to get the tcp header of a received packet in socket programming?