java Windows XP SP3 TCP/IP没有可用的缓冲区空间
我需要使用Java创建1000个服务器socket。在创建600到700个socket之间,我遇到了以下错误:
05.04.2012 10:23:57 java.net.SocketException: No buffer space available (maximum connections reached?): listen at sun.nio.ch.ServerSocketChannelImpl.listen(Native Method) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:127) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:52) at channelserver.NIOAppServer.initSelector(NIOAppServer.java:40) at channelserver.NIOAppServer.(NIOAppServer.java:27) at channelserver.NIOServer.main(NIOServer.java:433) at channelserver.NIOServer.main(NIOServer.java:438)
之后,我的电脑重新启动。 我试图编辑注册表设置MaxUserPort=65534和MaxFreeTcbs=2000,但没有帮助。 我还能做什么? 在http://serverfault.com上,有人告诉我,它可能与JDBC有关,但我只连接到DB一次。我使用SQLite。 有什么建议吗
# 1 楼答案
以防万一有人也会面临这个问题
最后,我觉得这只是WinXP的问题。我用更多的内存尝试了同样的代码——结果是一样的。但当我在Win7上试用时,即使有1200个插座,一切都很好
所以,WinXP不适合这样的任务