问题描述
|
我正在使用ServerSocket,却看不到/找不到积压的限制。文档对此没有说什么:
http://download.oracle.com/javase/6/docs/api/java/net/ServerSocket.html#ServerSocket(int,int)
我的代码是这样的:
serverSocket = ServerSocketChannel.open();
serverSocket.socket().bind(null,10000);
但我假设如果系统没有足够的RAM,则10000可能太多。那么,有没有办法确定我可以使用的积压最大值?
似乎在c ++中可以使用SOMAXCONN-Java是否存在类似的东西?
解决方法
如果存在,则将取决于系统:对于Windows
待办事项参数受限制
(无声地)达到合理的价值
由基础服务确定
提供者。非法值被替换
按最接近的法律价值。有
没有标准规定可以找出
实际积压值。
Linux的声明略有不同,但是您需要通过sysctl接口(或可能是/ proc)。
无论如何,您似乎都需要执行一些系统特定的代码。
我相信,如果指定的值“太大”,大多数实现将只使用它们的最大值,因此这可能与您的应用程序无关吗?