握手2
Posted guoyu1024
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了握手2相关的知识,希望对你有一定的参考价值。
我们看一看服务器端的接收代码:
依次调用 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的主要内容,如果未能解决你的问题,请参考以下文章
websocket失败:WebSocket握手期间出错:意外响应代码:400