Golang TCP粘包拆包问题的解决方法
什么是粘包问题
最近在使用Golang编写Socket层,发现有时候接收端会一次读到多个数据包的问题。于是通过查阅资料,发现这个就是传说中的TCP粘包问题。下面通过编写代码来重现这个问题:
服务端代码 server/main.go
func main() {
l, err := net.Listen(tcp, :4044)
if err != nil {
panic(err)
}
fmt.Println(listen to 4044)
for {
// 监听到新的连接,创建新的 goroutine 交给 handleConn函数 处理
conn, er