Ai
4 Star 18 Fork 9

NightTC/Gobige

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
MsgReader.go 900 Bytes
一键复制 编辑 原始数据 按行查看 历史
package sess
import (
"io"
"net"
"gitee.com/night-tc/gobige/msgdef"
)
//////////////////////////////////////////////////////////////////////
func readARQMsgForward(conn net.Conn) (msgdef.IMsg, uint16, error) {
if conn == nil {
return nil, 0, Err_Sess_Not_Exist
}
msgHead := make([]byte, MsgHeadSize-MsgIDSize)
if _, err := io.ReadFull(conn, msgHead); err != nil {
return nil, 0, err
}
msgSize := (int(msgHead[0]) | int(msgHead[1])<<8 | int(msgHead[2])<<16)
compressFlag := msgHead[3]
if msgSize > MaxMsgBuffer || msgSize <= 0 {
return nil, 0, Err_Data_Len_Over.NewErr(nil, msgSize)
}
msgData := make([]byte, msgSize)
if _, err := io.ReadFull(conn, msgData); err != nil {
return nil, 0, err
}
msgID := GetMsgID(msgData)
if msgdef.GetTypeMgr().IsMsgExist(msgID) {
msg, err := DecodeMsg(compressFlag, msgData)
return msg, msgID, err
}
return nil, msgID, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/night-tc/gobige.git
git@gitee.com:night-tc/gobige.git
night-tc
gobige
Gobige
3e11984fb1ba

搜索帮助