我有以下连接到服务器的代码,发送请求,然后返回响应。
问题是,如果客户端无法连接到服务器,程序将永远不会通过这一部分
PayLoad payLoadFromServer = client.sendRequest();
我只是想知道防止程序卡住的最佳方法是什么,即如果客户端无法连接,我想在 5 秒后超时,并能够在程序中优雅地处理。注意我无法编辑客户端类。
public PayLoad queryServer() {
try (final Client client = new Client("127.0.0.1", "8080")) {
PayLoad payLoadFromServer = client.sendRequest();
return payLoadFromServer;
}
}
非常感谢!
最佳答案
你应该使用方法 connect(SocketAddress endpoint, int timeout)的 java.net.Socket在你的 Client
类中。这是最好的解决方案,但可能存在其他解决方案。
关于java - 如果一段代码没有在一定的时间限制内返回,如何在 Java 中导致一段代码超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793507/