大家好:
  我最近练习socket。作了一个很简单的例子。
就是分别建立两个单文档形式的工程。一个是客户端,另一个是服务器端。
在这两个工程里,建立了一个类:CMsocket:public CAsyncSocket。
然后按照msdn说的,在app的InitInstance建立
         if (!AfxSocketInit())
{
AfxMessageBox("Socket初始化失败");
return FALSE;
}然后分别建立客户端和服务器端的socket.
服务器端:
首先在CMsocket建立
void CMySocket::OnAccept(int ErrorCode)
{
CAsyncSocket::OnAccept(ErrorCode);
ASSERT(m_pView);
if (ErrorCode==0)
    {
  m_pView->OnAccept();
}
}
然后在view里面
void CSocketServerView::OnListen()
   if(!m_MySocket.Create(4000))
   {
     int aaa=m_MySocket.GetLastError();
  //int aaa=GetLastError();
   }
AfxMessageBox("创建socket成功");
if(!m_MySocket.Listen())
    {
  AfxMessageBox("侦听失败");
      return;
}
AfxMessageBox("等待连接");void CSocketServerView::OnAccept()
{   
AfxMessageBox("accept is called");
    m_MessageSocket=new CMySocket(this);
if(!m_MySocket.Accept(*m_MessageSocket))
 {
   AfxMessageBox("无法接收连接");
    delete m_MessageSocket;
m_MessageSocket=NULL;
   return;
 }
     
     AfxMessageBox("成功接收连接"); 
}然后建立客户端,
步骤也是首先创建socket.然后和服务器连接。执行的时候,都显示socket创建成功,服务器端还显示等待连接。
但是当客户端连接的时候,经过跟踪
void CSocketServerView::OnAccept()的第一条语句AfxMessageBox("accept is called");已经被执行,但是后面的语句就出现异常,
请大家帮我看看是什么问题,多谢了。