在某些情况下,服务器无法在套接字级别确定客户端的状态,有时,由于连接断开,套接字返回成功,用户没有连接到服务器。一些消息被丢弃,我们如何克服这个问题。
Client c1 向Server S1 发送消息 服务器向Client2 c2 发送消息,如果返回成功,我们只能在socket send 上确定客户端连接的状态,我们可以假设客户端处于活动状态并且消息已成功发送。但是,由于连接不再并且套接字无法预测,因此有时消息会丢失?如何克服这个问题。
socket m_Sock;
m_Sock.BeginSend(byteData, 0, byteData.Length, 0, out errCode, SendCallback, null
如果错误代码成功,我们假设消息已成功发送到该客户端,但是在连接断开后它不会立即通知,在几秒钟后预期的错误代码在此间隔内返回我们丢失了消息
if(errCode == SocketError.Success)