Apr 11, 2012
tom

Windows XP SP3 TCP/IP No buffer space available

Question

I have the exactly same problem as here: Windows XP TCP/IP No buffer space available

On Windows XP Pro, SP3 if one does an experiment where one tries to open TCP/IP sockets in a loop (bascially, listen port 7000, listen port 7001, etc.)

After approx 649 open sockets, one will start getting errors: No buffer space available (maximum connections reached?)

I’ve tried to edit the registry as described here http://smallvoid.com/article/winnt-tcpip-max-limit.html I set MaxUserPort = 65534 and MaxFreeTcbs = 2000, but it didn’t help.

What else can I do? I need 1000 server sockets.

Here is the error stack:

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)

Asked by Natalia

Answer

Just in case someone would face this problem too.
Finally it seemed to me that it’s just WinXP’s problem. I’ve tried the same code with more RAM – results were the same. But when I’ve tried it on Win7, everything worked fine even with 1200 sockets.
So, WinXP is just not suitable for such tasks.

Answered by Natalia

Related posts:

  1. Windows XP TCP/IP No buffer space available
  2. TCP buffer size analysis
  3. How to prevent WSEACCESS error on Send via raw socket on Windows XP SP3 for normal user accounts
  4. Failed PCI Compliance – Port: 21 Protocol: tcp | Summary : attempts some buffer overflows
  5. How do I setup a TCP over DNS tunnel on Windows?

Leave a comment