d := make([]byte, 4096)conn.Read(d)我创建了一个固定数组来从套接字获取数据。但我想以灵活的大小而不是固定的大小获取数据。原因是我需要解组从套接字接收到的数据,但是数据的大小是固定的,所以调用解组函数将不起作用。所以我想问的是如何从socket中获取灵活大小的数据或者如何删除固定大小的空值。ex)data := make([]byte, 4096)conn.Read(data)fmt.Println(len(data)) ===> 105 (Actual data length)ordata([4, 128, 16, 8, 7, 0, 0, 0, 0, 7, 9, 128, 0...])↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓data([4, 128, 16, 8, 7, 0, 0, 0, 0, 7, 9, 128])
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
例如,
data := make([]byte, 0, 4096)
n, err := conn.Read(data[:cap(data)])
data = data[:n]
if err != nil {
// handle error
}
fmt.Println(len(data))
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消