golang实现聊天室(三)
实现多个客户端同时给服务端发送消息,服务端接受并打印出来
client1
func main() {var conn, err = net.DialTimeout("tcp", "127.0.0.1:5888", 30*time.Second)if err != nil {log.Fatal("conn error")}for {conn.Write([]byte("user 2"))time.Sleep(3 * time.Second)}conn.Close()
}
client2
func main() {var conn, err = net.DialTimeout("tcp", "127.0.0.1:5888", 30*time.Second)if err != nil {log.Fatal("conn error")}for {conn.Write([]byte("user 1\n "))time.Sleep(2 * time.Second)}conn.Close()
}
server
func main() {var conn, err = net.Listen("tcp","127.0.0.1:5888")if err != nil {return}for {c, err := conn.Accept()if err != nil {return}go Receive(c)}
}func Receive(c net.Conn) {for {byte := make([]byte, 256)lens, err := c.Read(byte)if err != nil {log.Fatal("Receive error")}byte = byte[:lens]fmt.Printf("%s\n", byte)}}
下次目标
广播指定消息发送给客户端