从结构体tcp_sock中获取TCP端口号

3

如何在Linux内核中获取tcp_sock结构的TCP端口号?其中tcp_sock实例是在tcp_recvmsg()上下文中的。

2个回答

2

tcp_recvmsg()中,struct tcp_sock对象是从参数struct sock sk中派生的。您可以执行inet_sk(sk)->inet_sport以获取TCP数据包的目标端口inet_sk(sk)->inet_dport应该获取数据包的源端口。


0
使用htons((unsigned short int)inet_sk(sk)->inet_sport)htons((unsigned short int)inet_sk(sk)->inet_dport)获取端口,如wireshark端口所示。

目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community
这基本上是复制了已接受的答案,并添加了一个没有解释的htons调用。在我看来,如果没有解释为什么这比被接受的答案更好,这并没有增加任何东西。 - Bluehorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接