SOCKET分阻塞和非阻塞模式,两都在什么情况下进行选用.
我今天试了一下DEMO.用阻塞方式进行传输,我客服端SENDBUF之后在服务端不知道怎么读取出来了,本来以为RECIVERBUF就可以了.但不行.服务端读不了缓存数据就一直占用着.

解决方案 »

  1.   

    阻塞 模式自然一直读取,你没有写在线程里?RECIVE前要Socket->Bind->Listen->Accept,哪一步错误也不行
    你改成非阻塞函数试下,调用后会马上返回
      

  2.   

    我知道阻塞是要等待处理后才能返回执行后面的代码,就像SENDMESSAGE.
    跟我说下,什么情况下用阻塞比较好.再有,怎么有效监听有数据,读取.怎么个读取方法,
    比如握手应答之类的.
      

  3.   

    1、现在基本都是用非阻塞模式。
    2、监听方式有:WSAAsyncSelect(窗口消息模式)、WSAEventSelect(事件模式)、重叠模式、完成端口。根据你自己不同的传输协议、应用环境等选用合适的模型吧。