设置了SO_TIMEOUT为0,Socket读依然超时
结贴是美德 2014-03-14 03:00:38 API原文:
public void setSoTimeout(int timeout) throws SocketException
Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds. With this option set to a non-zero timeout, a read() call on the InputStream associated with this Socket will block for only this amount of time. If the timeout expires, a java.net.SocketTimeoutException is raised, though the Socket is still valid. The option must be enabled prior to entering the blocking operation to have effect. The timeout must be > 0. A timeout of zero is interpreted as an infinite timeout.
我的理解是设置SO_TIMEOUT为0,那么如操作一直阻塞也没关系,不会抛出异常。