I'll try and keep this brief so in a nutshell:

I have large distributed java system running on a Windows 2003 server
(4cpu 8Gb memory).

Periodically the following exceptions occurs in the servers:

java.net.SocketException: No buffer space available (maximum
connections reached?): recv failed

I know for a fact we are not using too many TCPIP sockets or running
too many socket servers.

I have googled this error and found very little to help me.

What buffer space is this?
What does recv failed mean?

(Is it at all relevant that sql server is running on the same box?)

Any advice appreciated.
Thanks in advance.