0

Javaを使用して1000個のサーバーソケットを作成する必要があります。600と700のソケットを作成する間のどこかで、次のエラーが発生します。

05.04.2012 10:23:57 java.net.SocketException:使用可能なバッファースペースがありません(最大接続に達しましたか?):sun.nio.ch.ServerSocketChannelImpl.listen(ネイティブメソッド)の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に接続するのは1回だけです。私はSQLiteを使用しています。助言がありますか?

4

2 に答える 2

0

Windows XP では、ハーフオープン接続に制限があり、このルールを破るために tcpip.sys ドライバーにパッチを適用する必要があります (ただし、これは違法です)、または Windows Vista/7 などの最新の OS を使用している場合、これらの制限はありません。

于 2012-04-05T08:30:29.923 に答える
0

誰かがこの問題にも直面する場合に備えて。
最後に、それは単に WinXP の問題であるように思われました。RAM を増やして同じコードを試してみましたが、結果は同じでした。しかし、Win7 で試してみたところ、1200 ソケットでも問題なく動作しました。
したがって、WinXP はそのようなタスクには適していません。

于 2012-04-11T09:20:58.967 に答える