博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个误解: 单个服务器程序可承受最大连接数“理论”上是“65535”
阅读量:4965 次
发布时间:2019-06-12

本文共 760 字,大约阅读时间需要 2 分钟。

转载:

请注意,这里有两个词分别被我标记上了引号,一个是“理论”,一个是“65535”。强调“理论”这个词,是想特别明确误解者的意思:就是说,这个值是不可能被打破的,是铁板钉丁的。而65535这个数字的由来,很多人想当然地将它与port最大值联系起来。的确,TCP的端口数,最大值确实为65535。但是,这并不代表一个服务器可以接受的连接数就是这个值,很多人之所以把这两个概念搞混淆是因为对socket和port没有更深的认识和理解。

我们先来回想一下服务器服务的先后过程:服务器创建监听socket- >与对外服务的端口号绑定->开始listen->客户端连接到服务器对应的port->服务器accept为新的客户端产生新的socket->基于这个新的socket与客户端交换数据。

从以上流程来看,最大值为65535的“端口号”这个重要的东东,我们只用了一次,就是执行bind的时候!而以后创建的socket,说白了就是一个可以进行网络IO操作的HANDLE而已,它跟端口号的牵扯仅限bind以及作为客户端连接服务器的识别端口号的时候,一旦accept产生了socket,这个端口号,对服务器和新客户端的通信而言就不再有任何意义。而服务器可承载的连接数最大量,不就是能产生多少个客户端的socket吗?这个socket值即使与端口号无关,又何来65535的“理论”上限?我再一次地将“理论”二字用引号括起,是因为在有的操作系统中,默认的配置会将socket最大值设定为65535,但这个值是可以改的!端口号仅仅是门牌地址,不能因为鸟巢体育场能容纳10万名观众就搞10万个门牌号码吧,那电话簿要多厚啊!

转载于:https://www.cnblogs.com/zhaox583132460/p/3407876.html

你可能感兴趣的文章
Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
查看>>
Celery
查看>>
OSX 10.13 以后实现终端FTP命令(转)
查看>>
eclipse tomcat jdk 版本引用
查看>>
xshell 自动登录与自动跳转
查看>>
POJ 2728 Desert King
查看>>
开源的 Restful Api 集成测试工具 Hitchhiker
查看>>
人工智能时代架构设计还有没有价值
查看>>
炼数成金数据分析课程---18、降维技术(后面要重点看)
查看>>
普通广播接收者和有序广播接收者
查看>>
html5--6-19 CSS3中的文字与字体
查看>>
第三百七十五节,Django+Xadmin打造上线标准的在线教育平台—创建课程机构app,在models.py文件生成3张表,城市表、课程机构表、讲师表...
查看>>
查找两个数组的相同字符(两个超大文件的相同字符)
查看>>
POJ 1236 Network of Schools(tarjan)题解
查看>>
SensorService architechure’ note
查看>>
基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
查看>>
分布式之数据库和缓存双写一致性方案解析
查看>>
as运算符
查看>>
[转载]Request、Request.Form和Request.QueryString的区别
查看>>
JVM异常退出
查看>>