void Mysock::OnAccept(int nErrorCode) 
{
Mysock *sock=new Mysock();
if(Accept(*sock)!=0)
{
        CString a="有一个游客进入聊天室!";

POSITION pos;
        m_List.AddHead(sock);
        pos=m_List.GetHeadPosition();
        f(pos!=NULL)
        AfxMessageBox("socket已经存入列表");
        CSockserverApp* app=(CSockserverApp*)AfxGetApp();
        CSockserverDlg* dlg=(CSockserverDlg*)app->m_pMainWnd;
        dlg->m_read=a;
        dlg->UpdateData(false);
}
else
delete sock;
CAsyncSocket::OnAccept(nErrorCode);
}void Mysock::OnReceive(int nErrorCode) 
{
int i;
POSITION pos;
CString text;
char shuju[200];
pos=m_List.GetHeadPosition();
do
{
      Mysock *sock=(Mysock*)m_List.GetNext(pos);
               i=sock->Receive(shuju,sizeof(shuju));
}while(pos!=NULL&&i==SOCKET_ERROR);
if(i==SOCKET_ERROR)
{
      text.Format("%s",shuju);
               CSockserverApp* app=(CSockserverApp*)AfxGetApp();
      CSockserverDlg* dlg=(CSockserverDlg*)app->m_pMainWnd;
      dlg->m_read=text;
               dlg->UpdateData(false);
} CAsyncSocket::OnReceive(nErrorCode);
}怎么回事啊?
连接可以连接,但一接受数据就出错,连接函数里经过测试确实列表存了SOCKET,但接受那里列表居然是空的。