粘包是什么
发出:三条,中间有缝 收到:连成一片,一次 recv 全拿到 「粘包」指的是【0】。
半包是什么
发出:三条,中间有缝 收到:连成一片,一次 recv 全拿到 「半包」指的是【0】。
recv 返回空意味什么
recv 返回空字节串(b"")意味着【0】。
粘包:一次收到两条
本节的切包小工具: frame(msg) 4 字节大端长度前缀 + 内容 Reader.feed(chunk) / Reader.messages() 喂进任意切碎、可能粘在一起的字节,吐出完整消息、剩下的攒着(半包 +
半包:分两次才够一条
本节的切包小工具: frame(msg) 4 字节大端长度前缀 + 内容 Reader.feed(chunk) / Reader.messages() 喂进任意切碎、可能粘在一起的字节,吐出完整消息、剩下的攒着(半包 +
补全:正好读满 n 字节
本节的切包小工具: frame(msg) 4 字节大端长度前缀 + 内容 Reader.feed(chunk) / Reader.messages() 喂进任意切碎、可能粘在一起的字节,吐出完整消息、剩下的攒着(半包 +
补全:带缓冲的消息读取
本节的切包小工具: frame(msg) 4 字节大端长度前缀 + 内容 Reader.feed(chunk) / Reader.messages() 喂进任意切碎、可能粘在一起的字节,吐出完整消息、剩下的攒着(半包 +
补全:对面断了就收手
(每道题开头都有同一段:上面的内存版 TCP。) 贯穿全条的内存版 TCP(判题机不联网;接口和真 socket 一样,真机上把它换成 socket.socket() 就是真的): net = Net() lis = listen(net,
WebSocket 解决什么
WebSocket 相比普通 HTTP,解决的是【0】。
握手怎么来的
一条 WebSocket 连接是【0】。