原文链接:http://blog.csdn.net/huang_xw/article/details/7338659
设置socket调用InputStream读数据的超时时间,以毫秒为单位,如果超过这个时候,会抛出java.net.SocketTimeoutException。
当输入流的read 方法被阻塞时,如果设置timeout (timeout 的单位是毫秒),那么系统在等待了timeout 毫秒后会抛出一个InterruptedIOException 例外。在抛出例外后,输入流并未关闭,你可以继续通过read 方法读取数据。当底层的Socket 实现不支持SO_TIMEOUT 选项时,这两个方法将抛出SocketException 例外。不能将timeout 设为负数,否则setSoTimeout 方法将抛出IllegalArgumentException 例外。