这样很麻烦,但是当缓冲区的大小比较小时(我将它设置为8k),这样send一次就完全的将8k发送出去,是不是我们可以肯定当缓冲区小于8k的情况一下,我们无需再判断实际发送字节而认为数据被全部发送出去了?
7 个解决方案
#1
应该不行,按我理解无论缓冲区多少都会有这种情况出现
#2
回楼上的兄弟:那是不是就算只发送2个字节,都得把send放在一个循环当中?
#3
在异步I/O当中send就算是只发送一个字节也需要判断返回值,也就是可能需要重试。
#4
哦...那网上很多的代码都是不及格的。
#5
TO:unsigned
如果不是异步I/O呢?
如果不是异步I/O呢?
#6
如果不是异步I/O呢?
================
如果不是异步也同样需要判断返回值。至少是否出错,仍然需要通过返回值进行判断。
================
如果不是异步也同样需要判断返回值。至少是否出错,仍然需要通过返回值进行判断。
#7
肯定不是一定,还是要根据返回值来看
#1
应该不行,按我理解无论缓冲区多少都会有这种情况出现
#2
回楼上的兄弟:那是不是就算只发送2个字节,都得把send放在一个循环当中?
#3
在异步I/O当中send就算是只发送一个字节也需要判断返回值,也就是可能需要重试。
#4
哦...那网上很多的代码都是不及格的。
#5
TO:unsigned
如果不是异步I/O呢?
如果不是异步I/O呢?
#6
如果不是异步I/O呢?
================
如果不是异步也同样需要判断返回值。至少是否出错,仍然需要通过返回值进行判断。
================
如果不是异步也同样需要判断返回值。至少是否出错,仍然需要通过返回值进行判断。
#7
肯定不是一定,还是要根据返回值来看