如何确定当前系统上允许的“积压”最大值?

问题描述

| 我正在使用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)。 无论如何,您似乎都需要执行一些系统特定的代码。 我相信,如果指定的值“太大”,大多数实现将只使用它们的最大值,因此这可能与您的应用程序无关吗?     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...