setSoTimeout 的功能是什么,它是如何工作的?
我试图自己学习Socket。我对以下来自Oracle网站的文本感到有些困惑。我对此有一些疑问。提前感谢您的任何清晰解释。
setSoTimeout
public void setSoTimeout(int timeout) throw SocketException
启用/禁用具有指定超时的SO_TIMEOUT,以毫秒为单位。将此选项设置为非零超时,对此 Socket 关联的 调用将仅阻止此时间量。如果超时过期,则会引发 a,但套接字仍然有效。在进入阻止操作之前,必须启用该选项才能生效。超时必须> 0。超时为零被解释为无限超时。
read()
InputStream
java.net.SocketTimeoutException
-
什么?
SO_TIMEOUT
-
套接字是连接的终结点。如果我说
mySocket.setSoTimeout(2000);
这是否意味着我阻止从服务器/客户端读取此套接字的任何输入 2000 毫秒,并且在此时间之后套接字已准备好读取数据?
-
超时过期是什么意思?
-
在阻止操作之前必须启用的选项是什么?
-
无限超时意味着套接字不再读取?