gpt4 book ai didi

java.net.SocketException 连接超时错误

转载 作者:行者123 更新时间:2023-11-29 08:17:34 25 4
gpt4 key购买 nike

当我尝试连接到 TCP 服务器时出现以下错误。我的程序尝试使用不同的线程打开大约 300-400 个连接,这是在第 250 个线程期间发生的。每个线程使用自己的连接发送和接收数据。

java.net.SocketException: Connection timed out:could be due to invalid address
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:372)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:233)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:220)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:385)

这是我拥有的线程用于获取套接字的代码:

socket = new Socket(my_hostName, my_port);

TCP 服务器一次可以拥有的连接数是否有默认限制?如果不是如何解决此类问题?

最佳答案

如果服务器有一个 ServerSocket 绑定(bind)到您正在连接的端口,但不接受连接,您可能会遇到连接超时。

如果它总是发生在第 250 个连接时,可能服务器设置为只接受 250 个连接。必须有人断开连接,您才能连接。或者你可以增加超时时间;不要像那样创建套接字,而是使用空构造函数创建套接字,然后使用 connect() 方法:


套接字 s = 新套接字 ();
s.connect(new InetSocketAddress(my_hostName, my_port), 90000);

默认连接超时为 30 秒;上面的代码等待 90 秒连接,如果无法建立连接则抛出异常。

您还可以设置较低的连接超时并在捕获该异常时执行其他操作...

关于java.net.SocketException 连接超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3399950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com