为什么我会得到拒绝联系 1024 连接?
我在本地服务器上测试 Linux 在一个服务器上使用服务器和客户端。 之后 1024 在我连接的代码中的连接,我在连接中获得了失败。 起初我认为这是极限 fd_set_max 1024 为了 select, 并改变了服务器进行调查 select, 而且我仍然不能通过这个号码。 我的 ulimit-n 出发 2048, 我正在跟踪 lsof 在服务器上,它大致达到了 1033 /不确定这是一个精确的数字/ 并失败了。 任何帮助都非常有价值。
没有找到相关结果
已邀请:
8 个回复
诸葛浮云
赞同来自:
, 可以填充等待连接的队列。 最大队列长度由第二个参数设置
在服务器或价值上
/通常 128/, 如果少。
快网
赞同来自:
我不确定我是否理解正确:你在同一过程中有服务器和客户端吗? 然后,您将使用两倍的文件描述符。 它接近你用ulit看到的东西。 如果不是这种情况,问题是否可以在服务器端? 也许服务器进程有耗尽的描述符,不再可以
拿
没有连接。
在
http://manpages.ubuntu.com/man ... .html
有人提到你必须得到返回值:
EMFILE
为每个过程实现打开文件描述符的数量。
ENFILE
已经实现了开放文件总数的系统限制。
你得到了什么错误代码? 显然,您只能添加成功的那些连接 _accept_ed 在
select
或者
poll
.
我知道你已经知道了 , 如何检查
ulimit
, 但其他人可能不知道:
诸葛浮云
赞同来自:
我的问题是我用过 select, 哪个无法处理 socket-FDs 更高 1024. 因此,当我增加我的极限时,我的问题真的很改变!/我没有注意到....../
所以帮助任何有类似问题的人:
如果你需要更多 1024 套接字你必须这样做
增加
它自己的
限制
为了 open FDs /ulimit -n/
和你
不能使用 select
// /相反,使用
poll
///
石油百科
赞同来自:
您使用后清楚地关闭套接字。 - close// 或者 shutdown//.
我认为没有。 你真的有 1024 + 同时活性化合物? 你必须拥有 pthreads 参与其中才能做到。 这是正确的?
奔跑吧少年
赞同来自:
根据另一组的,上限是多少,有一个服务器?
在一个程序中我照顾 /若干年前/, 有一点代码设置了相等的最大文件大小 1 MB. 遗憾的是,当他第一次添加时,它增加了大小,但随着时间的推移和文件的增长后,这意味着他减少了大小! 有没有机会服务器有类似的问题 - 例如,它设置了荒谬的号码上的最大打开文件数 1024?
风见雨下
赞同来自:
他们在他们说时重新编译了服务器 "改变为调查"? 服务器是否在同一帐户下工作? 它
-ing 或也许流式传输服务器? 你会得到
呼吁后
在客户? 你能确认你得到了吗?
回应
从
? 是自定义端口号码是否再次使用? 有没有链接
?
董宝中
赞同来自:
软用户 nofile 16535
用户 Hard nofile 16535
或者从控制台尝试
ulimit-n 16535
尊敬
莫问
赞同来自:
尊敬