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)}}
下次目標
廣播指定消息發送給客戶端