import java.io.IOException;
import java.net.Socket;
import java.net.SocketTimeoutException;
public class SocketTimeoutExample {
public static void main(String[] args) {
Socket socket = null;
try {
// 创建一个Socket对象,连接到指定的主机和端口
socket = new Socket("example.com", 80);
// 设置读取超时时间为3000毫秒(3秒)
socket.setSoTimeout(3000);
// 这里可以进行读写操作
// 例如:InputStream in = socket.getInputStream();
// OutputStream out = socket.getOutputStream();
} catch (SocketTimeoutException e) {
// 捕获并处理超时异常
System.out.println("读取数据超时: " + e.getMessage());
} catch (IOException e) {
// 捕获并处理其他IO异常
System.out.println("IO异常: " + e.getMessage());
} finally {
// 确保在最后关闭socket
if (socket != null && !socket.isClosed()) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
new Socket("example.com", 80)
创建一个Socket对象,并尝试连接到指定的主机和端口。socket.setSoTimeout(3000)
设置读取超时时间为3秒。如果在此时间内没有读取到数据,将会抛出SocketTimeoutException
。try-catch
块来捕获可能抛出的SocketTimeoutException
和其他IOException
,并在控制台输出相应的错误信息。finally
块中确保无论是否发生异常,都会关闭Socket连接以释放资源。上一篇:java sse
下一篇:java list sort
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站