Read whole data with Golang net.Conn.Read

So I’m building a network app in Go and I’ve seen that Conn.Read reads into a limited byte array, which I had created with make([]byte, 2048) and now the problem is that I don’t know the exact length of the content, so it could be too much or not enough.
My question is how can I just read the exact amount of data. I think I have to use bufio , but I’m not sure.