Ich habe eine Client-Server-Anwendung senden, TCP-Verbindungkann nicht gob Daten über TCP in Go Programmierung
-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 {0, 0}, weil ich nicht weiß, wie man eine bytes.Buffer
Variable von net.Conn
erhält.
Gibt es eine Möglichkeit, Gob-Variablen über TCP zu senden?
Wenn richtig, wie kann dies getan werden? Oder gibt es eine Alternative beim Senden von Nummern über TCP?
Jede Hilfe oder Beispielcode würde wirklich geschätzt werden.
Ihr Beispiel funktioniert großartig. Vielen Dank. Ich frage nur, wie kann ich das Ergebnis vom Server zurück zum Client senden? – Emanuel
Ein Socket ist bidirektional. Schreiben Sie einfach in die Funktion 'handleConnection', genau so, wie Sie in den Client schreiben. –
Das funktioniert super. Danke für das Beispiel. Ich möchte eine {map [string] string} an den Server senden. Aber es wird nicht am Serverende dekodiert. Irgendwelche Vorschläge dazu? – Dany