Updated with solution: http://play.golang.org/p/Skgk9reT6c
http://play.golang.org/p/gtWYPXRsKo
without goroutines: http://play.golang.org/p/Vgne7e3RVO
Question 1: Why is it that the message "YOU'LL NEVER SEE ME!" doesn't display?
Question 2: As soon as I initiate a client I send these messages, all on their own threads:
func client() {
net, _ := net.Dial("tcp", "127.0.0.1:9988")
go clientBroadcast(net,"123456789101112")
go clientBroadcast(net,"do dododo do dodo do")
go clientBroadcast(net,"123456789101112")
go clientBroadcast(net,"do dododo do dodo do")
go clientBroadcast(net,"123456789101112")
go clientBroadcast(net,"TWELVE!")
time.Sleep(100 * time.Millisecond)
go clientBroadcast(net,"YOU'LL NEVER SEE ME!")
}
The server receives them and prints them out:
func serverBroadcast(con net.Conn, ch chan string) {
buf := make([]byte, 1024)
bytenum, _ := con.Read(buf)
strin := string(buf[0:bytenum])
fmt.Printf("
Server Broadcasting Message {%v}
",string(strin))
}
How is it that the server is apparently receiving all 4 messages at once and not one at a time?
I'm getting this message:
Server Broadcasting Message {123456789101112do dododo do dodo do123456789101112do dododo do dodo do123456789101112TWELVE!}
Server Broadcasting Message {123456789101112do dododo do dodo do123456789101112do dododo do dodo do123456789101112TWELVE!}
Server Broadcasting Message {123456789101112do dododo do dodo do123456789101112do dododo do dodo do123456789101112TWELVE!}
However I would have assumed I should have received this (in some random order as they are all threaded)
Server Broadcasting Message {123456789101112}
Server Broadcasting Message {do dododo do dodo}
Server Broadcasting Message {123456789101112}
Server Broadcasting Message {do dododo do dodo}
Server Broadcasting Message {TWELVE!}
Server Broadcasting Message {123456789101112}
Server Broadcasting Message {do dododo do dodo}
Server Broadcasting Message {123456789101112}
Server Broadcasting Message {do dododo do dodo}
Server Broadcasting Message {TWELVE!}
Server Broadcasting Message {123456789101112}
Server Broadcasting Message {do dododo do dodo}
Server Broadcasting Message {123456789101112}
Server Broadcasting Message {do dododo do dodo}
Server Broadcasting Message {TWELVE!}