Beispiel #1
0
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
	}
}
Beispiel #2
0
func DefaulConn() agent.Conn {
	ca := cfg.Whole.Agents[0].ClientAddr()
	return agent.NewConn(ca)
}