golangチャットルーム(C)
同時に複数のクライアントを実装し、サーバーにメッセージを送信し、サーバーが受け入れ、それをプリントアウトします
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()
}
クライアント2
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()
}
サーバ
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)
}
}
次のターゲット
クライアントにブロードキャストメッセージを指定します。