node net模块接收tcp数据 导致了 数据混合在一起了
发布于 5 年前 作者 I-find-you11 3815 次浏览 来自 问答

用node开启了一个tcp的服务端。在接收数据的时候,连续发了两条命令给客户端,客户端返回两条的时候,服务端接收到的两条命令被合并了。 1561190511(1).jpg image.png

6 回复

socket粘包问题?

自己定义协议拆包

最简单的做法,四个字节长度+一个协议包

基于TCP自定通信协议吧,最常用就是 header(body.length)+body

首先tcp避免粘包混乱,除非是客户端和服务端采用断连接的机制,必须,注意是必须定义最起码有长度标志的协议。然后强烈建议不要使用5楼的包,我已经尝试过了,并不是很好用,然后强烈推荐使用transform-stream类来做这个事情,非常简单,而且可以高度自定义。

回到顶部