java - Java:如何使用 “try with resources”设置套接字超时

标签 java sockets try-with-resources

我想设置一个套接字连接超时。我知道我可以使用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)){

最佳答案

从您的问题中并不清楚您被卡在哪里,但是您可以继续使用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)) {

    }
}

关于java - Java:如何使用 “try with resources”设置套接字超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44415297/

相关文章:

java - Hibernate saveorupdate 或 merge 用于保存/更新一对多关系对象

php - 在两个以上的php文件中使用相同的资源(例如创建的套接字)

java - Spring 中的 ServerSocket 范围?

python - 保持 TCP 套接字连接事件和读/写协调

java - 为什么在使用 try-with-resources 时在 try() 中声明 Resource

java - Spring Boot 2 安全基础认证

java - 如何解析类型定义为 XSD :any 的 XML

java - 从 Internet 加载数据时显示进度对话框

java - Java8中 "Autocloseable"的数组或集合

Java 8 FilterOutputStream 异常