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.