java Netty NIO 如何突破 65536 个端口的限制?如何做到 10万~50万 长连接? 5

现在看了很多帖子都在说java的nettynio实现长连接server可以做到在一个jvm上保持10万~50万的长连接。小弟java新手,对tcp编程了解一丢丢,我的知识... 现在看了很多帖子都在说 java 的 netty nio 实现长连接 server 可以做到在 一个 jvm 上保持 10万 ~ 50万 的长连接。
小弟java新手,对 tcp 编程了解一丢丢,我的知识范围告诉我,一个进程在 linux 上能打开的文件句柄数是有限的,因为内核用 16位的 short 来表示文件句柄数,那么最大值是不是 65536 呢?
而accept一个socket连接,也是要在系统本地创建一个文件的,就占用了这个 socket server 进程的一个文件句柄,这样算下来,一个进程是不是理论上最多就能保持 65536个长连接呢(1024 以下一般保留)?
一个 jvm 上启动一个java的socket server 应该算是一个系统进程吧?那么这个进程是怎么维持 65536 以上的长连接的呢?
我这样理解对么?
求高人指点,我错在哪里了呢?
已经被这个问题困惑了1年了,谁能救救我?
展开
 我来答
爱小鱼爱追剧
2019-11-13
知道答主
回答量:3
采纳率:0%
帮助的人:568
展开全部
NIO突破不了65535的端口数限制,linux端口范围0--65535,一般用户1025 ~ 65535
server端最大tcp连接数,理论上是2的48次方。
一个端口最大连接数cat /proc/sys/fs/file-max查看
客户端连接上端口之后的处理,才是netty的内容。netty代码监听着某个端口。
长连接不是问题,可能你要考虑的是并发问题
zixumenren
2016-02-04 · TA获得超过232个赞
知道小有建树答主
回答量:398
采纳率:0%
帮助的人:137万
展开全部
百年不遇的奇葩问题,连接数,跟端口有啥嘛关系,一个程序可以用多个端口,但绝对不会这么用,简直是浪费到极点,服务器端是使用了高可用方案才能做到10万~50万这么高的连接数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llei32wang
2015-05-09 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1403万
展开全部
65536 指的是端口数目 一台电脑只有 最多65536个端口。不能可能使用超过 65536 个端口的 。但是每个端口可比不是只能有一个连接的。
一个 jvm 上保持 10万 ~ 50万 的长连接 指的是连接数,这么多连接使用的一个或者几十个端口,而不是所有的端口。
web服务 用80端口 每秒几万人访问的时候,并不是没人一个端口而是大家公用一个80端口的。
追问
兄弟,按您的解释,那就不是长连接服务了,我并不是在问 web 。感谢您的回答,不过有些跑题。而且一个电脑只有6万多个端口是谬论,我的提干里面已经有粗浅的阐述了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QikS5
2019-03-29
知道答主
回答量:3
采纳率:0%
帮助的人:1.4万
展开全部
通道复用了解下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heieprime
2018-08-14
知道答主
回答量:1
采纳率:0%
帮助的人:838
展开全部
不懂不要装懂 谁告诉你的 服务器只能监听一个端口 我觉得有些时候没有真正能明白 不要乱发言 这样会浪费别人的时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 5条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式