Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.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
Perl-网络-如何处理超过128个SOMAXCONN套接字?_Perl_Nonblocking - Fatal编程技术网

Perl-网络-如何处理超过128个SOMAXCONN套接字?

Perl-网络-如何处理超过128个SOMAXCONN套接字?,perl,nonblocking,Perl,Nonblocking,我讨厌这种情况(MACOSX) 如何处理超过128个插座?我正在使用IO::Socket::INET(此时使用IO::Select进行多路复用),但我有这个限制 我在考虑fork N之前的过程(每个过程使用select或poll处理128个),但我不知道它是否可以工作。一些想法 这是OS X内核级别的可配置限制。幸运的是,它很容易修复,但前提是你有根。给你。相关条目为kern.ipc.somaxconn 否则,您可以尝试使用线程,但不确定每个线程是否都有自己的套接字分配,或者是否有任何数量的套接

我讨厌这种情况(MACOSX)

如何处理超过128个插座?我正在使用IO::Socket::INET(此时使用IO::Select进行多路复用),但我有这个限制


我在考虑fork N之前的过程(每个过程使用select或poll处理128个),但我不知道它是否可以工作。一些想法

这是OS X内核级别的可配置限制。幸运的是,它很容易修复,但前提是你有根。给你。相关条目为
kern.ipc.somaxconn


否则,您可以尝试使用线程,但不确定每个线程是否都有自己的套接字分配,或者是否有任何数量的套接字。

使用我的系统!我得到2147483647,即32位有符号。我想这是平台的一个属性,但我不是那个在许多系统上都可以配置askIt设置的人:@Daskwuff humm。。。我在考虑perl中的一些解决方案,但在TCP/IP中,我认为这是不可能的。SOMAXCONN不限制进程可以打开的套接字数量。相反你怎么知道你已经超过了SOMAXCONN?普通的套接字API当然不知道这一点。你的症状是什么?你确定你没有简单地点击OS X的节俭的RLIMIT_NOFILE,它可以通过
ulimit-n
轻松修复吗?我意识到Socket::SOMAXCONN()返回一个常量,如果我更改kern.ipc.SOMAXCONN中的值,我没有一种可移植的方法来识别它。我可以从配置文件中读取数据,至少它可以像Net::Server::Proto::TCP那样读取数据。我的目的是了解非阻塞I/O如何与tcp套接字一起工作,特别是select/poll机制。感谢Schwerncuation,这篇链接文章错误而随意地将SOMAXCONN描述为“在任何时候都可以打开的最大套接字数”。请参阅我对原始帖子的评论。
$ perl -MSocket -le 'print SOMAXCONN'
128