func starServer(port string) { tcpAddr, err := net.ResolveTCPAddr("tcp4", port) fmt.Println(tcpAddr) checkError(err) listener, err := net.ListenTCP("tcp", tcpAddr) checkError(err) //注册zk节点q conn, err := example.GetConnect() if err != nil { fmt.Printf(" connect zk error: %s ", err) } defer conn.Close() err = example.RegistServer(conn, port) if err != nil { fmt.Printf(" regist node error: %s ", err) } for { conn, err := listener.Accept() if err != nil { fmt.Fprintf(os.Stderr, "Error: %s", err) continue } go handleCient(conn, port) } fmt.Println("aaaaaa") }
func getServerHost() (host string, err error) { conn, err := example.GetConnect() if err != nil { fmt.Printf(" connect zk error: %s \n ", err) return } defer conn.Close() serverList, err := example.GetServerList(conn) if err != nil { fmt.Printf(" get server list error: %s \n", err) return } count := len(serverList) if count == 0 { err = errors.New("server list is empty \n") return } //随机选中一个返回 r := rand.New(rand.NewSource(time.Now().UnixNano())) host = serverList[r.Intn(3)] return }