2012-04-05 6 views
0

Ich muss 1000 Server Sockets mit Java erstellen. Irgendwo zwischen dem Erstellen von 600 und 700 Sockets bekomme ich diesen Fehler:Windows XP SP3 TCP/IP Kein Pufferspeicher verfügbar

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)

Danach startet mein Computer neu. Ich habe versucht, die Registrierungseinstellung MaxUserPort = 65534 und MaxFreeTcbs = 2000 zu bearbeiten, aber es hat nicht geholfen. Was kann ich noch tun? Auf http://serverfault.com hat mir jemand gesagt, dass es mit JDBC verwandt sein kann, aber ich verbinde mich nur einmal mit DB. Ich benutze SQLite. Irgendwelche Vorschläge?

Antwort

0

Nur für den Fall, dass jemand auch dieses Problem haben würde.
Schließlich schien es mir, dass es nur WinXP Problem ist. Ich habe den gleichen Code mit mehr RAM versucht - Ergebnisse waren die gleichen. Aber als ich es auf Win7 ausprobiert habe, hat alles sogar mit 1200 Sockets funktioniert.
Also, WinXP ist einfach nicht geeignet für solche Aufgaben.

0

unter Windows XP haben eine Grenze für halb offene Verbindung zu brechen diese Regel müssen Sie Ihren tcpip.sys Treiber (aber es ist illigable) Patch oder Patch mit modernen Betriebssystem wie Windows Vista/7 haben sie diese Grenzen nicht.

+0

Ich habe darüber gelesen. Ich habe aktuelle Grenze von 10 Verbindungen, aber immer noch in der Lage, etwa 300 funktionierende Client-Server-Verbindungen zu handhaben. Glaube nicht, dass das der Grund ist – Natalia

Verwandte Themen