在非阻塞的使用时,发送Socket可以立即返回作其他事,那么如何判断,发送缓存中数据已经发送完毕,可以发新的数据呢? 各位大侠指点一下小弟!

解决方案 »

  1.   

    OnSend 虚函数指示可以发送数据
      

  2.   

    你的意思是,
    我在程序中设置变量,state1=false
    可以发送在onSend虚函数中,把 state1 设置true,
    然后外面就可以由此判断吗?
      

  3.   

    OnSend 在这些情况下被通知:
    套接字首次建立连接
    accept 之后
    send, sendto ... 调用失败,返回 WSAEWOULDBLOCK 错误就是说在连接建立时你会首先接到一条 FD_WRITE( OnSend ), 之后你可以发送数据,此时可检查 send 返回值,若成功则可以继续发送,若为 WSAEWOULDBLOCK ,你可以等待下一条 FD_WRITE 通知再发送。