M
mywyn
Unregistered / Unconfirmed
GUEST, unregistred user!
假如我们采用WSASend异步发送数据,在大部分情况下都会一次发送完成(当然这只是表明数据被系统接受,并不说已发送到了远程主机)。而在网络繁忙的情况下,可能只发送成功一部分数据,而我们通常的做法是继续发送剩余的字节直到全部发送完成为止。
我们考虑这么一种情况:
1.发送数据A
2.发送数据B
.............
3.A数据发送异步返回 只发送40%
继续发送
4.B数据发送 异步返回 只发送60%
继续发送
...........................
5.A数据发送异步返回 完成
6.B数据发送异步返回 完成
.................................
程序员的原意是 A数据发送--->B数据发送
由于我们无法控制3、4步到底谁先发生,所以有可能变成这样:
A数据发送40%->B数据发送60%->B数据发送40%->A数据发送40%
可以肯定,远程主机接受的数据也将完全错位。
各位高手,有没有好的办法???
我们考虑这么一种情况:
1.发送数据A
2.发送数据B
.............
3.A数据发送异步返回 只发送40%
继续发送
4.B数据发送 异步返回 只发送60%
继续发送
...........................
5.A数据发送异步返回 完成
6.B数据发送异步返回 完成
.................................
程序员的原意是 A数据发送--->B数据发送
由于我们无法控制3、4步到底谁先发生,所以有可能变成这样:
A数据发送40%->B数据发送60%->B数据发送40%->A数据发送40%
可以肯定,远程主机接受的数据也将完全错位。
各位高手,有没有好的办法???