免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2371 | 回复: 1
打印 上一主题 下一主题

[C] ---------------------- [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-29 22:12 |只看该作者 |倒序浏览
[ 本帖最后由 sesame0816 于 2014-09-27 16:30 编辑 ]

----------------------

论坛徽章:
0
2 [报告]
发表于 2008-03-01 16:28 |只看该作者

回复 #1 sesame0816 的帖子

th = (struct tcphdr *)(skb->data + (skb->nh.iph->ihl * 4));      这样就对了     

但看skbuff的定义 我不知道 th = skb->h.th错在哪

部分skbuff的定义:

struct sk_buff {
        /* These two members must be first. */
        struct sk_buff                *next;
        struct sk_buff                *prev;

        struct sock                *sk;
        struct skb_timeval        tstamp;
        struct net_device        *dev;
        struct net_device        *input_dev;

        union {
                struct tcphdr        *th;
                struct udphdr        *uh;
                struct icmphdr        *icmph;
                struct igmphdr        *igmph;
                struct iphdr        *ipiph;
                struct ipv6hdr        *ipv6h;
                unsigned char        *raw;
        } h;

        union {
                struct iphdr        *iph;
                struct ipv6hdr        *ipv6h;
                struct arphdr        *arph;
                unsigned char        *raw;
        } nh;

.......................
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP