else if(netEvents.iErrorCode[FD_CLOSE_BIT]==10053)//客户端非法关闭
{
::WSACloseEvent(objtemp.sEvent);
ptr->PeerShutDownSocket(objtemp.s);
}
杭州-(__少(26062281) 14:11:47
#先说说为什么会出现10053错误
.这种情况通常是连接的一方客户端(服务器端),close连接后;连接的另一方服务器端(客户端)的socket发送缓冲区里边还有“未确认”的数据,导致服务器端的tcp协议栈会重新发送这些数据;然而客户端socket对方已经关闭了,并且丢弃了它的socket接受缓冲区的数据。导致服务器端的tcp协议栈向上层应用返回 10053错误。 如果你这个时候用wireshark抓一下包,应该会看到客户端可能会发送一个tcp rst分段过来!怎么样解决close的时候数据丢失就是另外一个话题了
杭州-(__少(26062281) 14:11:50
求解
杭州-浪子(81811368) 14:13:59
shutdown both 应该能解决
杭州-(__少(26062281) 14:14:27
在客户端
杭州-(__少(26062281) 14:14:40
closesocket的地方?
杭州-浪子(81811368) 14:14:39
忽略就行了