socket.write和socket.end
发布于 2年前 作者 beiyio 890 次浏览

用socket.write发送一个长度为4的数据 每次发送都输出socket.bytesWritten发现每次结果都会递增 第一次发送是4 第二次就是8 但是客户端收到的数据长度确实4

去看了一下API发现了一个end方法,如果每次都用end发送输出的结果每次都是4,有人说 end是强制发送。write是缓冲发送,但是我又在api里发现了end是半关闭socket,但是测试的时候2边确实都能收到消息,有点浓不明白了。希望哪个路过的高手能给指点下

5 回复

高手们。。还没到吃饭的点啊

那问的那位仁兄说的很对,socket.write不管你是写一定数量的数据,甚至是写一个字节,会写所有字节从给定的缓冲区,它是有效的,根据网络缓冲区等,但是这样你必须小心,因为这样你就会无意中忘记发送你其他的数据.而end的时候应该是直接进行强制输出

@ym1623 可是手册里说end是半关闭,会发送fin包。那这样socket不就等于关闭了吗

@beiyio socket.end就是結束某個socket collection的实例

@ym1623 已经弄明白了。感谢

回到顶部