码迷,mamicode.com
首页 > 其他好文 > 详细

握手2

时间:2019-03-24 23:15:48      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:pre   info   dev   col   int   服务   listener   source   style   

我们看一看服务器端的接收代码:

依次调用 tcp_v4_rcv,判断下面函数

struct sock *sk2 = inet_lookup_listener(dev_net(skb->dev),
                            &tcp_hashinfo,
                            iph->saddr, th->source,
                            iph->daddr, th->dest,
                            inet_iif(skb));

寻找处于 TCP_LISTEN状态的sock ,再看一下下面函数

static inline struct sock *inet_lookup_listener(struct net *net,
        struct inet_hashinfo *hashinfo,
        __be32 saddr, __be16 sport,
        __be32 daddr, __be16 dport, int dif)
{
    return __inet_lookup_listener(net, hashinfo, saddr, sport,
                      daddr, ntohs(dport), dif);
}

ntohs(dport) 也就是服务器的本地端口。

握手2

标签:pre   info   dev   col   int   服务   listener   source   style   

原文地址:https://www.cnblogs.com/guoyu1024/p/10591147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!