1. 10053
这个错误码的意思是: A established connection was aborted by the software in your host machine, 一个已建立的连接所在主机的软件中止
2. 10054
这个错误码的意思是: Connection closed by peer, 连接已经被对方关闭
10053 出现的可能原因是:数据传输超时或者协议错误。
10054 出现的可能原因是:对端关闭了socket(可能是异常也可能是超时),然而本端还没有感知到,依旧写入数据(对端接收缓冲区有数据),对端发现有未处理的数据直接回复RST重置连接标记,表明对端已经关闭了socket
注意到10053和10054出现的原因有重复,以下是区分他俩的一个文章:
某端出现10053和10054的在于主动端(客户端)和被动端(服务器)建立连接后,服务器非正常关闭时有没有关闭socket,这个fin包是不是在rst之前被客户端收到,fin先于rst,则10053
update problem:
ps:
1. close 是优雅关闭过程,当socket的引用计数减少到0,开始优雅关闭流程,发送fin包,经四次握手关闭
2. shutdown 是直接破坏socket的通信,如果指定关闭WR,则发送fin包给对方