为了账号安全,请及时绑定邮箱和手机立即绑定

如何灵活调整套接字数据长度?

如何灵活调整套接字数据长度?

Go
红颜莎娜 2022-05-18 14:33:35
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))


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信