我在服务器端的代码是这样的while(1)
{
SOCKET sendSocket = (SOCKET)param;
recv(sendSocket,RecvBuf,100,0);
AfxMessageBox((CString)RecvBuf);
}我在程序运行的时候如果客户端关掉后.会不断的弹出最后一次收到的消息请问是怎么回事应该怎么处理还有,怎么响应客户端断开socket连接啊谢谢

解决方案 »

  1.   

    可以用WSAAsyncSelect或WSAEventSelect绑定通知的窗口或则事件。
    具体代码可以参考MSDN.
      

  2.   

    WSAGetLastError获取recv的错误码(返回SOCKET_ERROR时)。
      

  3.   

    检查接收是否成功啊
    if (recv != SOCKET_ERROR)
    {
    AfxMessageBox(msg);
    }
      

  4.   

    if( recv(sendSocket,RecvBuf,100,0) != SOCKET_ERROR )
    {
         AfxMessageBox((CString)RecvBuf);
    }
    else
    {
        // 这里WSAGetLastError获取错误码并进行处理。
        // ............
        break;
    }
      

  5.   

    ok
    我知道了谢谢各位的帮助我还想知道还有其他的方法知道客户端已经退出吗?
    ==========================
    在客户端推出的时候给服务端发送一个退出消息呗。比如发送一个"QUIT“之类的东西。服务器端接受到了QUIT就知道客户端推出了!
      

  6.   

    学习ing蹭分大侠前来拜访!