我讨厌这种情况(MACOSX)
$ perl -MSocket -le 'print SOMAXCONN'
128
如何处理超过 128 个套接字?我正在使用 IO::Socket::INET (此时与 IO::Select 多路复用)但我有这个限制。
我在考虑 pre-fork N 进程(每个处理 128 使用 select 或 poll),但我不知道它是否可以工作。一些想法?
我讨厌这种情况(MACOSX)
$ perl -MSocket -le 'print SOMAXCONN'
128
如何处理超过 128 个套接字?我正在使用 IO::Socket::INET (此时与 IO::Select 多路复用)但我有这个限制。
我在考虑 pre-fork N 进程(每个处理 128 使用 select 或 poll),但我不知道它是否可以工作。一些想法?
这是 OS X 内核级别的可配置限制。幸运的是,它很容易修复,但前提是你有 root。这是一篇解释如何调整内核配置的文章。相关条目是kern.ipc.somaxconn
。
否则,您可以尝试使用线程,不确定每个线程是否获得自己的套接字分配,或者CPAN 上的任意数量的预分叉服务器。