0
我有通过监听端口设置的TCP数据包连接(net.Conn
)。读取net.Conn缓冲区的第一个UVarInt
conn, err := ln.Accept()
我需要阅读Conn.Read([]byte)
缓冲区,它开始于索引0
此前的第一UVarInt,我只需要第一个字节,这是很容易用做
packetSize := make([]byte, 1)
conn.Read(packetSize)
// Do stuff with packetSize[0]
但是,如前所述,我需要使用net.Conn.Read()方法获得第一个可以使用的UVarInt。请记住,一个UVarInt可以有几乎任何长度,我不能确定(客户端不发送UVarInt的大小)。不过我知道UVarInt从缓冲区的一开始就开始了。
使用NewReader(conn)确实有效,但我必须使用“ReadUvarInt(br)”才能获得正确的值。 – Momo
@Momo问题说,varint,而不是uvarint。更新问题以描述您的数据。我会更新答案。 –