socket 端口 请求

大圈 发布于 2015/10/30 10:41
阅读 193
收藏 2
今天在看socket时看到了一句话  “同一时刻,一个端口只能建立一个连接”。但是为什么我在netstat -anptu 时可以看到同一个端口有很多请求显示的是 “ESTABLISHED” 状态呢?如下图:这怎么解释呢?多谢各位指点!
加载中
0
0-1
0-1
例如服务端在3306上监听,然后生成一个新的socket与client通讯。(注意:服务器端监听端口是
不变的,但socket连接可以一直生成,一个线程对应一个socket.)
同一时刻,一个端口只能建立一个连接。 (这个是指创建连接从无到有的过程)

在一个端口监听,但是在监听端口的同时,生成一个等待队列,每一个来自客户端的连接都会送入等待队列中,服务器利用一定的算法进行选择相应的连接请求处理,所以在一个端口可以监听多各请求嘛。如果同时的连接过多,服务器相应每个连接的时间就会相应的变长。就会变慢。

(netstat的截图是一个端口可以有多个client连接,有点文字游戏了。。)

大圈
大圈
你的意思是netstat 显示的ESTABLISHED 并不是代表真正的连接着?
0
大圈
大圈

引用来自“0-1”的评论

例如服务端在3306上监听,然后生成一个新的socket与client通讯。(注意:服务器端监听端口是
不变的,但socket连接可以一直生成,一个线程对应一个socket.)
同一时刻,一个端口只能建立一个连接。 (这个是指创建连接从无到有的过程)

在一个端口监听,但是在监听端口的同时,生成一个等待队列,每一个来自客户端的连接都会送入等待队列中,服务器利用一定的算法进行选择相应的连接请求处理,所以在一个端口可以监听多各请求嘛。如果同时的连接过多,服务器相应每个连接的时间就会相应的变长。就会变慢。

(netstat的截图是一个端口可以有多个client连接,有点文字游戏了。。)

那时还不太理解你所说的,现在是懂了,多谢解答。
返回顶部
顶部