Senden nicht möglich gob-Daten über TCP in Go-Programmierung

Ich habe eine client-server-Anwendung mit TCP-Verbindung

Client:

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 auf dienen ist {0, 0}, weil ich nicht weiß, wie Sie erhalten eine bytes.Buffer variable aus net.Conn.

Gibt es eine Möglichkeit für das senden von gob Variablen über TCP ?

Wenn das stimmt, wie kann dies gemacht werden ? Oder gibt es irgendwelche alternativen in senden zahlen über TCP ?

Jede Hilfe oder Beispiel-code würde wirklich geschätzt werden.

InformationsquelleAutor Emanuel | 2012-06-26
Schreibe einen Kommentar