Ich habe gerade angefangen zu schreiben einen Golang-Client für einen Server, den ich in C mit TCP/IP-Sockets gemacht habe, dann habe ich herausgefunden, dass mein Kanal nicht funktionierte.Kanäle in Golang mit TCP/IP-Socket funktioniert nicht
Irgendwelche Ideen warum?
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")
}
Testen meinem Server mit netcat Ergebnisse in der folgenden Ausgabe: http://pasted.co/a37b2954
Aber ich habe nur: http://pasted.co/f13d56b4
Ich bin neu zu chan in Golang so vielleicht bin ich falsch (I wahrscheinlich am)
Können Sie in der Frage selbst "nicht funktionieren" definieren? – Adrian