📅  最后修改于: 2023-12-03 15:01:33.522000             🧑  作者: Mango
在 Java 网络编程中,我们经常需要使用套接字(Socket)进行网络通信。有时候,我们需要设置超时以保证程序的健壮性和性能。
什么是套接字超时?简单来说,套接字超时就是指在连接或数据传输过程中,如果经过一定时间后连接或数据传输未能成功,则认为操作超时。
对于一个套接字,我们可以分别设置连接超时和读取超时。连接超时表示在连接过程中等待对方响应的最长时间,读取超时表示在读取数据过程中等待数据到来的最长时间。
在 Java 中,设置套接字超时的方式都是通过设置socket的timeout属性。具体方式如下:
Socket socket = new Socket();
// 设置连接超时为5秒
socket.setSoTimeout(5000);
上述代码将设置当前Socket实例的连接超时为5秒。如果在5秒内没有成功连接上,则抛出SocketTimeoutException异常。
同样的,我们也可以设置读取超时:
InputStream inputStream = socket.getInputStream();
// 设置读取超时为3秒
inputStream.setSoTimeout(3000);
上述代码将设置当前InputStream实例的读取超时为3秒。如果在3秒内没有收到数据,则抛出SocketTimeoutException异常。
在设置套接字超时的时候,需要注意以下几点: