简体   繁体   English

Java:如何使用“尝试资源”设置套接字超时

[英]Java: How to set a socket timeout with a “try with resources”

I want to set a socket connection timeout. 我想设置一个套接字连接超时。 I know that I can set it using the connect method but this is my code: 我知道我可以使用connect方法进行设置,但这是我的代码:

try(Socket socket = new Socket(InetAddress.getByName(ip), port);
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8")), true)){

It's not really clear from your question where you are stuck, but you can just keep using the connect method: 从您的问题中并不能很清楚地知道卡在哪里,但是您可以继续使用connect方法:

int timeout = 25000;
try (Socket socket = new Socket()) {
    socket.connect(new InetSocketAddress("abc", 123), timeout);
    try (BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
         PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8")), true)) {

    }
}
try(Socket socket = new Socket(InetAddress.getByName(ip), port)) {
    socket.connect(adress, timeout);
} catch (Throwable t) {
    handleException(t);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM