func DefaulClient(addr string, hand func(byte, byte, byte, []byte) error) func(byte, byte, byte, []byte) error { conn := agent.NewConn(addr) size := 0 isEnd := false errmsg := errors.New("use of closed network connection") go func() { for { b, err := conn.ReadMsg() if err != nil { break } if len(b) == 0 { continue } err = hand(b[1], b[2], b[3], b[4:]) if err != nil { break } } isEnd = true conn.Close() }() return func(m1, m2, m3 byte, b []byte) error { if isEnd { return errmsg } err := conn.WriteMsg(append([]byte{byte(size), m1, m2, m3}, b...)) if err != nil { isEnd = true return errmsg } return nil } }
func DefaulConn() agent.Conn { ca := cfg.Whole.Agents[0].ClientAddr() return agent.NewConn(ca) }