不停的向某个端口发起连接,当达到一定数量的时候,就会连接不上,netstat -a 里面发现端口已经满了。我觉得是windows在哪个地方限制了连接端口的数量,或者socket端口释放得太慢。哪位大虾知道,Win2000上,这种问题该怎么解决?
下面是示例代码:
import java.io.IOException;
import java.net.Socket;public class SocketTest {
public static void main(String[] args) {
for (int i = 0; i < 9999; ++i) {
try {
Socket socket = new Socket("127.0.0.1", 21);
socket.close();
} catch (IOException ioe) {
System.out.println("Error: " + i);
break;
} catch (Exception e) {
System.out.println("Other Exception: " + i);
return;
}
}
System.out.println("End");
}
}
下面是示例代码:
import java.io.IOException;
import java.net.Socket;public class SocketTest {
public static void main(String[] args) {
for (int i = 0; i < 9999; ++i) {
try {
Socket socket = new Socket("127.0.0.1", 21);
socket.close();
} catch (IOException ioe) {
System.out.println("Error: " + i);
break;
} catch (Exception e) {
System.out.println("Other Exception: " + i);
return;
}
}
System.out.println("End");
}
}
解决方案 »
- JComboBox实现三级联动效果,不知出现什么错误,求指教?
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
- java application 中的iamge的切换
- Socket连接求助,急~~~~谢谢
- org.apache.ojb.broker.query.Query 急
- 为什么打包的程序无法连接数据库呀?
- 如何将一篇txt文章内的文字都放入到一个string中?请会的人帮忙解答
- 用mysql-front连接Mysql数据库,居然什么用户名都能连上
- 绿色版tomcat 重装JDK后,服务起不来
- java薪水怎么样?
- DecimalFormat 格式化显示一个超过17位的大数时,在第17位四舍五入,如何解决?
- 错误请教你们~~大哥
是socket.close()耗时,还是指的windows的socket关闭耗时?
有什么办法没有啊?
如果调优很耗时也很艰巨,费用又紧张的话,还可以通过以下调整系统内核参数获得一定的改善。
window nt系列
在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下增加双字节值的注册表项:
1)MaxUserPort
缺省是5000 (十进制)
可以设置为最大65534 (十进制)
2)TcpTimedWaitDelay
缺省是240 (十进制)
可以设置为最大30 (十进制)unix/linux
echo 65536 > /proc/sys/fs/file-max
ulimit -n 65536
echo net.inet.tcp.msl=2000 >> /etc/sysctl.conf
/etc/rc.d/sysctl restart
来调整TIME_WAIT连接的超时,缺省为30000