我的 java 代码使用多个线程,每个线程运行一个 ServerSocket 并接受。这些线程使用 java 套接字相互通信。121个线程都运行良好,但是如果我用256个线程运行相同的代码,我会遇到这个错误:
java.net.SocketException: No buffer space available (maximum connections reached?): listen failed
at java.net.PlainSocketImpl.socketListen(Native Method)
at java.net.PlainSocketImpl.listen(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
我使用 windows xp sp3,有几个这样的帖子(here),但没有人针对这个问题发布解决方案。我还安装了一个 Windows 补丁来消除 TCP 连接的限制,但我没有解决我的问题。