1 java
我有一个场景,其中有服务器侦听指定的IP和端口以及连接到该服务器的客户端.现在我正在使用readline
方法从服务器读取响应:
String readme=bs.readline()).
Run Code Online (Sandbox Code Playgroud)
这bs
是bufferedreader
对象.我想知道在阅读回复之前是否写了这一行
socket.setSoTimeout(1000)
Run Code Online (Sandbox Code Playgroud)
如果没有响应,直到1000毫秒
套接字是否超时并断开连接,或者它是否断开套接字并给出空字符串readme
.
实际上都没有.A SocketTimeoutException
被抛出.
来自文档:
setSoTimeout
Run Code Online (Sandbox Code Playgroud)public void setSoTimeout(int timeout) throws SocketException
使用指定的超时启用/禁用SO_TIMEOUT,以毫秒为单位.如果将此选项设置为非零超时,则与此Socket关联的InputStream上的read()调用将仅阻止这段时间.如果超时到期,则引发java.net.SocketTimeoutException,尽管Socket仍然有效.必须在进入阻止操作之前启用该选项才能生效.超时必须> 0.超时为零被解释为无限超时.
参数:
timeout
- 指定的超时,以毫秒为单位. 抛出:SocketException
- 如果底层协议中存在错误,例如TCP错误.
归档时间: |
|
查看次数: |
7318 次 |
最近记录: |