Tengo una aplicación cliente-servidor, utilizando la conexión TCPNo se pueden enviar los datos de masa de vidrio a través de TCP en Ir Programación
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 de servir es {0, 0} porque no sé cómo obtener una variable bytes.Buffer
de net.Conn
.
¿Hay alguna forma de enviar variables gob a través de TCP?
Si es cierto, ¿cómo se puede hacer esto? ¿O hay alguna alternativa para enviar números a través de TCP?
Cualquier ayuda o código de muestra realmente sería apreciado.
Su ejemplo funciona muy bien. Gracias. La única pregunta que tengo es ¿cómo puedo enviar el resultado del servidor al cliente? – Emanuel
Un socket es bidireccional. Simplemente escriba en la función 'handleConnection', exactamente como escribe en el cliente. –
Esto funciona muy bien. Gracias por el ejemplo. Quiero enviar un {map [string] string} al servidor. Pero no se decodifica en el extremo del servidor. Alguna sugerencia sobre esto? – Dany