Je viens de commencer à écrire un client Golang pour un serveur que j'ai fait en C avec des sockets TCP/IP, puis j'ai compris que ma chaîne ne fonctionnait pas.Les canaux dans Golang avec socket TCP/IP ne fonctionnent pas
Des idées pourquoi?
func reader(r io.Reader, channel chan<- []byte) {
buf := make([]byte, 2048)
for {
n, err := r.Read(buf[:])
if err != nil {
return
}
channel <- buf[0:n]
}
}
func client(e *gowd.Element) {
f, err := os.Create("/tmp/dat2")
if err != nil {
log.Fatal()
}
read := make(chan []byte)
c, err := net.Dial("tcp", "127.0.0.1:4242")
if err != nil {
log.Fatal(err)
}
go reader(c, read)
for {
buf := <-read
n := strings.Index(string(buf), "\n")
if n == -1 {
continue
}
msg := string(buf[0:n])
if msg == "WELCOME" {
fmt.Fprint(c, "GRAPHIC\n")
}
f.WriteString(msg + "\n")
}
Test mon serveur avec des résultats netcat dans la sortie suivante: http://pasted.co/a37b2954
Mais je ne dispose que: http://pasted.co/f13d56b4
Je suis nouveau chan golang alors peut-être que je me trompe (je probablement am)
Pouvez-vous définir «ne fonctionne pas» dans la question elle-même? – Adrian