我在调用 Receive() 时没有在 OnReceive()中调用 当接收不到数据时就会出错,跟踪后说产生了WSAEWOULDBLOCK 错误,然后调用 PumpMessages(FD_READ)
{
/**************/
_AFX_SOCK_THREAD_STATE* pState = _afxSockThreadState;
/****************、/
}
pState 为空值,这是为什么,应该怎么弄?

解决方案 »

  1.   

    WSAEWOULDBLOCK是在非阻塞套接字上出现的一般性错误,表示当前的操作未立即完成或套接字正在使用中.
    完成后的结果或什么时候套接字可用.由所使用的套接字模型指定的方法来获取.
      

  2.   

    你是不是从CAsyncSocket派生的呀
    它默认是非阻塞的模式
      

  3.   

    从CSocket派生的类。可是如果不用非阻塞型的,那一读取数据的时候,就一直停在那儿,
    那是绝对不可以的。