void CServerSocket::OnAccept(int nErrorCode)
{
CClientSocket* pClientSocket = new CClientSocket(&m_ConnectList);
Accept(*pClientSocket); pClientSocket->m_pChatServerDlg = (CChatServerDlg*)::AfxGetMainWnd(); // 绑定窗口 m_ConnectList.AddTail(pClientSocket); // 压入一个连接
CSocket::OnAccept(nErrorCode);
}
Accept(*pClientSocket); 这句有什么作用?
网上查了好多,没什么收获。(代码贴的应该够吧?)
你这个CServerSocket肯定是继承了CSocket(或CAsyncSocket)而来,所以你需要查"CSocket Accept"其实也蛮简单的,它会把新连接的socket对象赋值给你传递进去的这个socket的引用。
书上很误导人的,记得检测返回值。
Accept(*pClientSocket);
这句是不是记录相关数据给pClientSocket??
Accept(*pClientSocket);
这句单步调试了一下,还是不知道有什么作用,因为那个“while (!CAsyncSocket::Accept(rConnectedSocket, lpSockAddr, lpSockAddrLen))”语句也未被执行。
就是说这个函数调用了和没调用似乎是一样的。究竟是何作用呢?
也不准备用MFC的这个CSocket类,无奈书上是用这个做例子的,得看懂才行。自己准备用win32的sock重新实现。
的意思是C/S在这个pclientsocket上建立了连接,以后就可以在pClientSocket上进行通讯了,
实际开发中基本不用....
那这个Accept函数在执行期间,会不会触发OnRecieve()函数?