关于 CAsyncSocket Send 的一个小疑点! 马上给分

关于 CAsyncSocket Send 的一个小问题!!!!!!!! 马上给分
使用   CAsyncSocket   异步类,连接好后,在程序需要的时候   开调用send   发送数据。(可能会循环发送很多数据   量不大但是发送的次数可能会很多)

在局狱网中   测试良好,在Internet上测试,发现接收端   有很多包没有接受得到,但是连接却是正常的。

注:为了性能,我发送的数据并不需要接受端发来确认。

看了MSDN的资料,Send(buf,len)   会返回

==len,这个最好了
==SOCKET_ERROR   这种情况又要处理下面的
{
GetLastError()   =
WSAEWOULDBLOCK   //我理解为忙,但是数据已经复制到缓冲区,等会系统会自动帮你发
不是WSAEWOULDBLOCK   //我理解为网络出错。
}
最后一种是   <   len   //这个这么处理?难道我要循环发送没有发完的数据?


MSDN   上是在OnSend里处理的,如果在我的程序里这样做,我根本不知道这个OnSend是发送哪块数据返回的。

我要怎么处理啊?




------解决方案--------------------
这个问题,我自己已经解决了!!

< len ,才是部分完成,剩下的系统会帮你完成。(换句话说,出现这个问题,你可以不用理睬)
GetLastError() =
WSAEWOULDBLOCK // 这个才是问题的关键 缓冲区满,发送不成功。 这个你需要重新循环发送,知道成功,当然这时候你就变成了非阻模式了。