`

单个服务器程序可承受最大连接数“理论”上是“65535”

阅读更多

一个误解: 单个服务器程序可承受最大连接数“理论”上是“65535”
请注意,这里有两个词分别被我标记上了引号,一个是“理论”,一个是“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,但这个值是可以改的!

分享到:
评论
2 楼 yymmiinngg 2011-12-09  
那有没有最大连接数呢?或者告知一下最大连接数是多少呢?
1 楼 colt_colt 2011-11-28  
accept返回的socket会自动分配一个port的,咳,不知者无畏

相关推荐

    获取和修改linux socket最大连接数,linux,系统

    Socket的最大连接数是一个重要的系统资源限制,关乎到服务器的并发处理能力。本文将深入探讨如何获取和修改Linux Socket的最大连接数,以及其背后的系统原理。 首先,我们需要了解`/proc/sys/net/core/somaxconn`这...

    Linux下高并发socket最大连接数所受的各种限制(详解)

    下面小编就为大家带来一篇Linux下高并发socket最大连接数所受的各种限制(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Oracle经典故障解析 连接数&会话数

    在使用Oracle数据库的过程中,连接数和会话数是影响系统性能的关键因素。下面将详细解析这两个概念,以及它们在Oracle故障排查中的重要性。 1. 连接数和会话数的概念:在Oracle中,连接数指的是同一时间连接到...

    设置Apache最大连接数

    特别是在高并发场景下,合理设置Apache的最大连接数(即`MaxClients`参数),能够显著提升服务器响应速度与承载能力。 #### 知识点二:`MaxClients`参数详解 - **定义**:`MaxClients`参数用于定义Apache服务器能...

    更改TCP并发连接数

    TCP并发连接数是指同一时间一个用户或进程可以建立的TCP连接的最大数量。在打印机共享环境中,如果多个用户尝试同时连接到同一台打印机,可能就会遇到这个限制,从而影响打印效率。 描述中提到的问题解决方案可能是...

    Linux下高并发socket最大连接数所受的各种限制

    因此,系统对用户进程可打开文件数量的限制直接影响了最大并发Socket连接数。默认情况下,这个限制通常是1024,可以通过`ulimit -n`命令查看。若要增加这个限制,可以使用`ulimit -n <number>`命令,但需要注意,这...

    解决Winser2003服务器限制连接数的办法

    - 同样创建另一个 DWORD 值,名为“TcpNumConnections”,设置数值数据为49151(这表示最大连接数,可根据实际需求调整)。 - 完成修改后,重启服务器以使更改生效。 2. 使用第三方工具: - 有一些第三方软件,...

    多线程下mysql连接数过多解决demo

    这通常是由于每个线程创建一个独立的数据库连接导致的,当并发线程数量增加时,连接池中的连接数量也随之增加,如果超过服务器允许的最大连接数,就可能导致应用程序无法正常工作,甚至引发“Too many connections”...

    单片机C语言程序设计 8只数码管滚动显示单个数字(有源码)

    单片机C语言程序设计 8只数码管滚动显示单个数字(有源码)单片机C语言程序设计 8只数码管滚动显示单个数字(有源码)单片机C语言程序设计 8只数码管滚动显示单个数字(有源码)单片机C语言程序设计 8只数码管滚动显示...

    服务器端应用程序,监听客户端的连接请求,处理各客户端发送来的数据

    服务器端应用程序是网络服务的核心部分,它负责监听客户端的连接请求并进行响应,为用户提供服务。在计算机网络中,服务器端程序扮演着重要的角色,它们是互联网服务的基石,能够处理来自全球各地的用户请求。本文将...

    破解TCP连接数限制

    负载均衡器也可以分配连接到多个服务器,避免单个服务器承受过大压力。 5. **使用异步I/O或事件驱动编程**:如Node.js或Python的asyncio库,它们允许在单个线程中处理大量并发连接,通过非阻塞I/O操作提高了系统...

    单片机C语言程序设计07 8只数码管滚动显示单个数字(基于8051+Proteus仿真)

    单片机C语言程序设计07 8只数码管滚动显示单个数字(基于8051+Proteus仿真)单片机C语言程序设计07 8只数码管滚动显示单个数字(基于8051+...滚动显示单个数字(基于8051+Proteus仿真)单片机C语言程序设计07 8只数

    xp-连接数更改 下载工具

    在Windows XP操作系统中,系统默认的TCP连接数是有限制的,这可能会影响到用户的网络体验,特别是当使用下载工具时,如BitTorrent、迅雷等。"xp-连接数更改 下载工具"是为了突破这个限制,提高下载速度而设计的。这...

    修改用户连接数

    标题中的"修改用户连接数"指的是改变操作系统允许单个用户或应用程序同时建立的最大TCP连接数。这个限制是由操作系统设定的,旨在防止资源耗尽,但也可能成为性能瓶颈。描述中的"资源里面有个方法2,可以试试操作,...

    c#单个服务器对多个客户端的socket通信源码程序

    本篇将深入探讨“C#单个服务器对多个客户端的Socket通信源码程序”,并解析相关知识点。 Socket通信是基于TCP/IP协议的,它允许应用程序通过网络进行双向数据传输。在C#中,`System.Net.Sockets`命名空间提供了...

    3389突破连接数连接器

    3. **负载均衡**:如果连接器支持,它可能会将多个RDP连接分散到不同的服务器或实例上,以减轻单个系统的压力。 4. **安全性增强**:虽然"3389突破连接数连接器"主要关注的是连接数量,但一个好的工具可能也会包含...

    vc编写的代理服务器程序

    【标题】"VC编写的代理服务器程序"是一个基于Visual C++(VC)开发的网络应用程序,主要用于实现代理服务器的功能。代理服务器在计算机网络中扮演着重要角色,它充当客户端与目标服务器之间的中介,允许用户通过它来...

    单片机C语言程序设计8只数码管滚动显示单个数字(基于8051+Proteus仿真)

    单片机C语言程序设计8只数码管滚动显示单个数字(基于8051+Proteus仿真)单片机C语言程序设计8只数码管滚动显示单个数字(基于8051+Proteus仿真)单片机C语言程序设计8只数码管滚动显示单个数字(基于8051+Proteus...

    TCPIP并发连接数修改

    这通常是因为操作系统为了防止恶意攻击或者资源过度消耗,对单个进程或系统的并发连接数进行了限制。当我们需要进行网络扫描或测试时,这种限制可能会成为阻碍。 首先,我们要理解TCP/IP协议栈的工作原理。TCP...

    修改Windows系统单进程使用的内存上限

    这条命令告诉Windows将单个进程的最大虚拟地址空间增加到4GB。请注意,这并不意味着实际物理内存会增加,而是允许进程使用更多的虚拟内存。 3. 输入命令后,你需要重新启动计算机以使更改生效。重启后,系统将按照...

Global site tag (gtag.js) - Google Analytics