㈠ 网络异常,读取数据超时怎么回事
这个我们从HTTP协议的底层分析,读取数据超时分成三个情况:连接超时,读超时与写超时。大概的说就是因为网络不通或者时断时持,导致服务端与客户端在数据交换过程中产生各种异常的发生。
连接超时的定义是如果应用层不能及时接受已被TCP接受的连接,这些连接可能占满整个连接队列,新的连接请求可能不被响应而会超时。如果timeout的值小于三次握手的时间,那么Socket连接永远也不会建立。这种情况相当于你网络根本就没连上。
读超时的定义为如果对方进程崩溃、对方机器突然重启、网络断开,本端的read会一直阻塞下去,这时服务端设置超时不够是非常重要的,否则调用read的线程会一直挂起。
写超时的定义为当Socket的write发送数据时,如果网线断开、对端进程崩溃或者对端机器重启动,TCP模块会重传数据,最后超时而关闭连接。下次如再调用write会导致一个异常而退出。