CNode

socket.write和socket.end

Bbeiyio发布于13 年前最后回复13 年前5 回复5379 浏览0 收藏

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

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

查看回复

回复 (5)

B
beiyio#1·13 年前

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

Y
ym1623#2·13 年前
引用 beiyio高手们。。还没到吃饭的点啊

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

B
beiyio#3·13 年前
引用 beiyio高手们。。还没到吃饭的点啊

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

Y
ym1623#4·13 年前
引用 beiyio高手们。。还没到吃饭的点啊

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

B
beiyio#5·13 年前
引用 beiyio高手们。。还没到吃饭的点啊

@ym1623 已经弄明白了。感谢

参与回复
登录后即可参与回复。登录