Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ServerSocket连接在特定数目后被拒绝_Java_Serversocket - Fatal编程技术网

Java ServerSocket连接在特定数目后被拒绝

Java ServerSocket连接在特定数目后被拒绝,java,serversocket,Java,Serversocket,在我们的应用程序中,我们有一个标准的TCP/IP服务器套接字编程,允许客户端连接到服务器 我注意到,经过一定数量的连接后,客户端无法打开到服务器的新连接。我遇到问题的号码是946客户端连接。在这之后,我得到了客户端的连接拒绝错误 服务器正在Linux box(64位)中运行。服务器仍在运行,没有内存不足错误 我看不出backlog有什么问题,因为我只有一个客户端在循环,打开新连接并将其放入阵列中 我正在对客户端可以打开到服务器的最大连接数以及如何最大化连接数执行压力测试 有什么想法吗 编辑1:

在我们的应用程序中,我们有一个标准的TCP/IP服务器套接字编程,允许客户端连接到服务器

我注意到,经过一定数量的连接后,客户端无法打开到服务器的新连接。我遇到问题的号码是946客户端连接。在这之后,我得到了客户端的连接拒绝错误

服务器正在Linux box(64位)中运行。服务器仍在运行,没有内存不足错误

我看不出backlog有什么问题,因为我只有一个客户端在循环,打开新连接并将其放入阵列中

我正在对客户端可以打开到服务器的最大连接数以及如何最大化连接数执行压力测试

有什么想法吗

编辑1:
服务器未在我尝试连接的端口上侦听。在服务器上,我得到以下错误

'08:10:41:055 [*] [TcpServer] - java.net.SocketException: Too many open files <stack trace follows>
08:10:41:055 [*] [TcpServer] - at java.net.PlainSocketImpl.socketAccept(Native Method)
08:10:41:055 [*] [TcpServer] - at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
08:10:41:055 [*] [TcpServer] - at java.net.ServerSocket.implAccept(ServerSocket.java:522)
08:10:41:055 [*] [TcpServer] - at sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:317)
'08:10:41:055[*][TcpServer]-java.net.SocketException:打开的文件太多
08:10:41:055[*][TcpServer]-位于java.net.PlainSocketImpl.socketAccept(本机方法)
08:10:41:055[*][TcpServer]-位于java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
08:10:41:055[*][TcpServer]-位于java.net.ServerSocket.implacept(ServerSocket.java:522)
08:10:41:055[*][TcpServer]-位于sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:317)

如前所述,我增加了文件限制。这就解决了问题。

当服务器进入这种状态时,运行“netstat-a”以确保它实际上正在侦听它应该侦听的端口。“connection Rejected”(连接被拒绝)错误特别意味着在客户端尝试连接的端口上侦听连接没有意义。“backlog”(积压)后面的部分没有意义。要么您接受传入连接的速度不够快,因此您正在填充积压工作,要么侦听端口已按@Kenster.Server的建议关闭。服务器未侦听我尝试连接的端口。在服务器上,我发现以下错误。您不能同时拥有“仅一个客户端”和946个连接。下定决心吧。你必须发布一些代码。accept()循环出现严重错误。您刚刚发布的错误并不构成“服务器未侦听”,增加文件句柄的数量并不能解决问题,它只是移动了它。你有连接泄漏。我想知道从客户端到服务器可以打开的最大“活动”连接数是多少。因此,我没有关闭客户端的连接。我把它们放在客户端的数组中。在服务器端,每个接受的“客户机”连接都有一个新的工作线程。