采用标准库scanner实现数据分离处理粘包
参考http://feixiao.github.io/2016/05/08/bufio/
使用标准库scanner实现数据分离处理粘包
本文代码查看github:
https://github.com/zboyco/go-server/tree/step-9
直接使用scanner处理粘包,不用管理buffer,相对更加简单
修改socket.go中的handleClient函数
// 读取数据
func handleClient(server *Server, session *AppSession) {
// 获取连接地址
remoteAddr := session.conn.RemoteAddr()
fmt.Println("客户端[", session.ID, "]地址:", remoteAddr)
// 创建scanner
scanner := bufio.NewScanner(session.conn)
//根据协议定义分离规则
split