猿问

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

d := make([]byte, 4096)

conn.Read(d)

我创建了一个固定数组来从套接字获取数据。


但我想以灵活的大小而不是固定的大小获取数据。


原因是我需要解组从套接字接收到的数据,但是数据的大小是固定的,所以调用解组函数将不起作用。


所以我想问的是如何从socket中获取灵活大小的数据或者如何删除固定大小的空值。


ex)

data := make([]byte, 4096)

conn.Read(data)

fmt.Println(len(data)) ===> 105 (Actual data length)


or


data([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])


红颜莎娜
浏览 135回答 1
1回答

慕工程0101907

例如,data := make([]byte, 0, 4096)n, err := conn.Read(data[:cap(data)])data = data[:n]if err != nil {    // handle error}fmt.Println(len(data))
随时随地看视频慕课网APP

相关分类

Go
我要回答