我用CAsyncSocket 做一server,怎样听Accept(newClienSock) 的 newClienSock的OnReceive实事件?
void CTCPSVRSocket::OnAccept(int nErrorCode) 
{
// TODO: Add your specialized code here and/or call the base class
if (nErrorCode == 0)
    {
        CClientSocket    newClick;       TRACE("*******************Create CAsyncSocket!\r\n");
        if (newClick.m_hSocket != INVALID_SOCKET)
            return;     if (Accept(newClick))   // ?????
    {
            TRACE("Create CAsyncSocket!\r\n");
            BOOL  bResult = newClick.GetPeerName(m_strClientIP, m_unClientPort);
            ((CTCPIPTestDlg*)m_pOwner)->m_unPortNum = m_unClientPort;
            ((CTCPIPTestDlg*)m_pOwner)->m_strIP = m_strClientIP;
            ((CTCPIPTestDlg*)m_pOwner)->UpdateData(FALSE);
            TRACE("Ip:%s, PortNum:%d\n", m_strClientIP, m_unClientPort);
    }
    }
}

解决方案 »

  1.   

    你在CClientSocket类中添加一个消息函数OnReceive(int nErrorCode),客户端每send一次,便触发该函数,在该函数完成接收即可
      

  2.   

    TO:yanhuahui(小辉)
    谢谢!
    请问CClientSocket的基类是CAsyncSocket,此类需要什么代码吗?除了在
    OnReceive外
      

  3.   

    有否用CAsyncSocket写的服务器端原代码
    多谢![email protected]
      

  4.   

    此类需要什么代码吗???看msdn就知道它的一些成员函数。还有OnAccept等一些触发函数
      

  5.   

    我现在可以接收到客户端的连接,
    但服务器端我没有触发onreceive事件
    why?
      

  6.   

    不会吧,不管是同步异步类,都能触发,你的OnReceive的函数是不是在classwizard里生成的?
      

  7.   

    TO: yanhuahui(小辉) ,
    你能否给我一个此方面的例子(SOurceCode)
    谢谢