有时send()会堵住,程序不动了,什么原因啊?设置超时可以解决吗?

解决方案 »

  1.   

    缓冲区满什么的,
    发送之前先看一下缓冲区时候可写.
    用select检测一下.
      

  2.   

    可是每个send()都会准备好数据才会调用,不会没有数据啊
      

  3.   

    用异步方式发送吧,发送时循环检测,看看发送的数据和要发送的长度是否一致。MFC中有个类,CAsyncSocket,在安装路径下能找到它的源码,可以参考一下。它是用异步消息方式做的,一般做客户端足够用了。如果是服务器端,可以采用异步事件,也就是select