你的WSAAsyncSelect()应该在程序初始化时,创建socket后调用。

解决方案 »

  1.   

    我用了个缓冲数组 buf[20];用ZeroMemery(buf,20);是什么意思呢?是否是把它清空???
      

  2.   

    消息lParam并不直接是FD_READ,而要用
    switch(WSAGETSELECTEVENT(lParam))
    {
          case FD_READ:
          ....
    }
    ZeroMemory是把长度为20的buf清零。
      

  3.   

    lParam好像高位是错误码,而底位就是我所关注的消息。(我记不太清了)
      

  4.   

    谢谢你的提醒,我用了WSAGETSELECTEVENT(lParam)的。就是在发帖时忘了加上了。
    翼翼说的我回去试试。不知道还有什么我要注意的呢???
    谢谢大家的答复 ^-^
      

  5.   

    估计是你的窗口函数不对吧。
    你自己写的窗口函数如何注册呢?
    你可以改写
    LRESULT CServerDlg::WindowProc(UINT message,WPARAM,wParam,LPARAM lParam)
    {
    ];    switch(message)
        {
        
              case WM_SOCK:
            {
                switch(lParam)
                {
                case FD_READ:
                    { recv(sclient,bufrec,400,0);
                      
                      p->SetWindowText(bufrec);
                                  
                    }
                }
            }
        }
                      
    }
    这样我想应该没问题。
      

  6.   

    我是对着要加入的文件点右键,选Add ~~Funtions来加的窗口回调涵数,好象自动注册了。