Gob-Daten können in Go Programming nicht über TCP gesendet werden

Ich habe eine Client-Server-Anwendung, die eine TCP-Verbindung verwendet

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)
}

Server:

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)
}

Das Ergebnis für Aufschlag ist {0, 0}, da ich nicht weiß, wie ich a erhalten sollbytes.Buffer variabel vonnet.Conn.

Gibt es eine Möglichkeit, GOB-Variablen über TCP zu senden?

Wenn ja, wie geht das? Oder gibt es eine Alternative beim Senden von Nummern über TCP?

Jede Hilfe oder Beispielcode wäre wirklich dankbar.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage