gpt4 book ai didi

java - InetSocketAddress 超时

转载 作者:搜寻专家 更新时间:2023-11-01 03:40:37 25 4
gpt4 key购买 nike

我有以下代码:

socket.connect(new InetSocketAddress(serverHost, serverPort), CONNECT_TIMEOUT);

问题是当 DNS 不可访问时,InetSocketAddress 需要 45 秒超时并返回异常(“主机不可访问...”)。我需要整个命令(因此 InetSocketAddress 的创建和连接超时更早。我没有找到使 new InetSocketAddress(serverHost, serverPort) 更早超时的方法。

这可能吗?

附言我在 Android 上,但问题在其他平台上也是一样的

最佳答案

没有简单的方法。你需要运行这段代码

socket.connect(new InetSocketAddress(serverHost, serverPort), CONNECT_TIMEOUT);

在一个单独的线程(i/o 线程)中并从 UI 主线程与其通信。一旦你超过了你的时间限制 - 发送一个终止信号并立即在 UI 线程中继续,不要等到它终止。根据状态,I/O 线程要么立即终止,要么最终终止。

关于java - InetSocketAddress 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415211/

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