Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos TCP连接的Mac OsX套接字限制,如何增加?_Macos_Sockets_Tcp_Limit - Fatal编程技术网

Macos TCP连接的Mac OsX套接字限制,如何增加?

Macos TCP连接的Mac OsX套接字限制,如何增加?,macos,sockets,tcp,limit,Macos,Sockets,Tcp,Limit,我正在用MacOSX编写一个服务器程序,在2011年末的MBP中使用XCode 5.0,操作系统是10.8.5。 我正在使用cocoaasyncsockets()。我尝试了cocoaasyncsocket下载中的echoserver示例 我对它进行了负载测试,在建立了大约2550个连接后,它停止了接受/建立连接。我试图增加这个数字,老实说,我“可能”弄乱了我的配置(主要是使用sysctl-w调用,所以当我启动时,它回到了默认值),但就我所知,2550个连接的限制仍然存在。 当我重新启动并在第二天

我正在用MacOSX编写一个服务器程序,在2011年末的MBP中使用XCode 5.0,操作系统是10.8.5。 我正在使用cocoaasyncsockets()。我尝试了cocoaasyncsocket下载中的echoserver示例

我对它进行了负载测试,在建立了大约2550个连接后,它停止了接受/建立连接。我试图增加这个数字,老实说,我“可能”弄乱了我的配置(主要是使用sysctl-w调用,所以当我启动时,它回到了默认值),但就我所知,2550个连接的限制仍然存在。 当我重新启动并在第二天继续尝试时,我注意到新的限制只有250个连接,而我无法超过这个限制

我也在MacMini2011上试过(我从来没有改变过这个mini的任何配置,它是最普通的配置),连接限制也是250个连接

我想操作系统限制了最大连接数,这是我的问题: 如何增加OSX允许的最大连接数

我打算获得至少32k tcp连接,现在我甚至不知道这是否可能。 这可能是我的wifi路由器的问题吗


提前感谢。

可能会迟到,但仍想补充一下

我也有同样的问题。只需使用ulimit-n增加打开文件的数量,比如说10000个,并连接来自多个进程的客户端,就可以解决这个问题。我将2500个连接拆分到每个进程,可以创建10k连接


希望这能有所帮助。

是否可能因为使用其他资源而限制了您可以同时处理的套接字的数量?我已经查看了该博客条目,并按照其步骤进行了操作(这是我第一天进行的多次尝试中的一次,我今天也尝试了),但结果没有改变。我还真的不认为使用其他资源是限制因素,因为Mac是2011款4GB Ram的机型,没有其他运行设备(此外,出于我无法理解的原因,昨天我得到了2.5k连接,今天我只能得到250个,同样的机器为什么会减少?)。我不在我的路由器上使用NAT。我相信我看到有人在同一台机器/操作系统上报告10.5k连接(不幸的是,我不记得在哪里)。@KillianDS临时端口的数量与此无关。这是服务器,不是客户端。它只需要一个端口。Killian,如果我理解正确,有一个监听端口,当它得到一个连接时,它会要求操作系统提供一个空闲端口,在那里连接传入的连接,并在原始端口中继续监听。问题是,在某个时刻操作系统停止提供空闲端口,我想知道如何增加操作系统提供的端口总数。如果我没有正确理解这一点,如果有人能为我照亮这一点,我会非常高兴。@user3329949不,你没有正确理解这一点。当您接受来自侦听套接字的套接字时,将显示一个与侦听套接字具有相同本地端口号的新套接字。临时端口仅由客户端在创建出站连接时使用,或由服务器故意为侦听套接字请求临时端口。我无法在OSX上更改这一点。