你能确定socket.write方法可以正确的把数据发送到系统缓冲区吗?
发布于 11 年前 作者 nodejser 5836 次浏览 最后一次编辑是 8 年前

一些开发语言调用类似socket.write的方法时,会返回一个整形值,表示已经正确发送到系统缓冲区的字节数。 如:int sent=socket.write(array),这里array是一个长度1000的字节数组.此时sent的返回值可能是1000,100,20都有可能。所以,需要通过一些方法循环调用write方法,直至每次返回的sent的和等于array的长度。

但是,在node中我看到很多的代码都是直接一句socket.write。根据node文档的描述:如果所有数据被成功刷新到内核缓冲区,则返回true.如果返回false,则表示不是所有数据都已经成功发送到系统缓冲区,此时该怎么做?

再调用一次,肯定不合理,因为可能已经有部分数据已经存在于缓冲区中。大家怎么看这个问题?

回到顶部