Ho un'applicazione client-server, utilizzando la connessione TCPImpossibile inviare i dati Gob su TCP in Go Programmazione
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)
}
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)
}
Il risultato sul servizio è {0, 0} perché non so come ottenere una variabile bytes.Buffer
da net.Conn
.
Esiste un modo per inviare le variabili gob su TCP?
Se è vero, come può essere fatto? O ci sono alternative nell'invio di numeri su TCP?
Qualsiasi aiuto o codice di esempio sarebbe davvero apprezzato.
Il tuo esempio funziona alla grande. Grazie. L'unica domanda che ho è come posso inviare il risultato dal server al client? – Emanuel
Un socket è bidirezionale. Basta scrivere su di esso nella funzione 'handleConnection', esattamente come si scrive nel client. –
Funziona alla grande. Grazie per l'esempio. Voglio inviare una {map [stringa]} al server. Ma non viene decodificato in server. Qualche suggerimento su questo? – Dany