1
17
我很肯定,虽然记忆在时间的迷雾中很深,但我以前看到过它返回零,在大量数据传输的情况下,另一端没有跟上。 从内存来看,在这种情况下,远程TCP堆栈缓冲区已满,堆栈通知本地端它将延迟,直到清除一些空间,本地缓冲区也已满。 在这一点上,技术上它不是一个错误(因此没有返回-1),但是本地堆栈不能接受任何数据。 我不是 完全地 现在肯定是这样,因为当前的POSIX标准似乎表明它在这种情况下只会阻塞(或者如果设置为非阻塞,则会失败)。 然而,我怀疑这是一个没有意义的观点。你 做 有可能它会回来 较少的 而不是您请求发送的字节,因此您应该有适当的代码来处理它。 而且,由于它与处理“零字节”几乎是相同的逻辑处理“比您请求的少一个”,所以您也可以假设它可以返回零。 |
2
4
好吧,总是有这样一种情况,你把0作为发送的字节数传递给……在这种情况下,“返回发送的字节数”表示它应该返回零字节。 不管怎样,最好还是正确地处理返回零的情况;这不会造成伤害,而且可能会有所帮助。 |
3
3
答案很可能取决于实现,因此根据操作系统的不同而有所不同。 一种情况,当您请求0字节的传输时,预期为0。 |
4
1
BSD 男人 页面状态:
POSIX规范进一步说明了在阻塞模式下 全部的 除非发生中断,否则将传输数据。 在这两种情况下,除非提供的计数为零,否则无法返回零。 |
5
0
我确实观察到从
是的,这是由于
所以,JFYI。 |
Kevin Furlong · 类型转换和泛型 6 年前 |
Oleg Volkov · T-SQL存储过程结果转换为变量 6 年前 |
Jmainol · 获取选项标记值y传递到数组中 7 年前 |
Shiranai · 使用指针在C中的一个函数中返回多个值 7 年前 |
Kayote · 函数是否总是返回值[重复] 7 年前 |
user3723688 · python导入csv函数 7 年前 |