Nie można wysłać danych Gob przez TCP w Go Programming

Mam aplikację serwera klienta, korzystającą z połączenia TCP

Klient:

type Q struct {
    sum int64
}

type P struct {
    M, N int64
}

func main() {
    ...
    //read M and N
    ...
    tcpAddr, err := net.ResolveTCPAddr("tcp4", service)
    ...
    var p P
    p.M = M
    p.N = N
    err = enc.Encode(p)
}

Serwer:

type Q struct {
    sum int64
}

type P struct {
    M, N int64
}

func main() {
    ...
    tcpAddr, err := net.ResolveTCPAddr("ip4", service)
    listener, err := net.ListenTCP("tcp", tcpAddr)
    ...
    var connB bytes.Buffer
    dec := gob.NewDecoder(&connB)
    var p P
    err = dec.Decode(p)
    fmt.Printf("{%d, %d}\n", p.M, p.N)
}

Wynik na służbie wynosi {0, 0}, ponieważ nie wiem jak uzyskaćbytes.Buffer zmienna odnet.Conn.

Czy jest jakiś sposób na wysyłanie zmiennych gob przez TCP?

Jeśli to prawda, jak można to zrobić? Czy istnieje możliwość alternatywnego wysyłania numerów przez TCP?

Każda pomoc lub przykładowy kod byłby naprawdę mile widziany.

questionAnswers(1)

yourAnswerToTheQuestion