No se pueden enviar datos de gob a través de TCP en la programación de Go
Tengo una aplicación de servidor cliente, usando conexión TCP
Cliente:
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)
}
Servidor:
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)
}
El resultado en el servicio es {0, 0} porque no sé cómo obtener unbytes.Buffer
variable desdenet.Conn
.
¿Hay alguna manera de enviar variables de gob a través de TCP?
Si es verdad, ¿cómo se puede hacer esto? ¿O hay alguna alternativa en el envío de números a través de TCP?
Cualquier ayuda o código de muestra sería realmente apreciado.