33 lines
539 B
Go
33 lines
539 B
Go
package main
|
|
|
|
import "net"
|
|
|
|
type User struct {
|
|
Name string
|
|
Addr string
|
|
C chan string
|
|
conn net.Conn
|
|
}
|
|
|
|
// 创建一个User的API
|
|
func NewUser(conn net.Conn) *User {
|
|
userAddr := conn.RemoteAddr().String()
|
|
user := &User{
|
|
Name: userAddr,
|
|
Addr: userAddr,
|
|
C: make(chan string),
|
|
conn: conn,
|
|
}
|
|
// 启动监听当前user channel的goroutine
|
|
go user.ListenMessage()
|
|
return user
|
|
}
|
|
|
|
// User类的成员方法: 监听消息
|
|
func (user *User) ListenMessage() {
|
|
for {
|
|
msg := <-user.C
|
|
user.conn.Write([]byte(msg + "\n"))
|
|
}
|
|
}
|