func Login(buffer []byte, Conn *net.Conn, User *model.User, userCache *model.UserCache) *model.User { confirm := core.Confirm{} err := confirm.Decode(buffer) if err != nil { fmt.Printf("TCPHandle Login Error:%v", err.Error) return nil } if confirm.UserUuid != "" { remote := (*Conn).RemoteAddr().String() ips := strings.Split(remote, ":") ip := net.ParseIP(ips[0]) User = &model.User{IP: ip, Port: int32(confirm.Port), Uuid: confirm.UserUuid, Conn: Conn} } if User == nil { return nil } userCache.Add(User) return User }