package discovery import ( "fmt" "net" "os" "strings" "xtcfs/config" ) // 分隔符 const separator = "|" func Listen() { // 创建udp addr, err := net.ResolveUDPAddr("udp", config.G.LocalIP) ChkError(err) // conn, err := net.ListenUDP("updp", addr) ChkError(err) // 延迟关闭 defer conn.Close() buf := make([]byte, 1024) for { // n, src, err := conn.ReadFromUDP(buf) remoteAddr := src.IP.String() + ":" + config.G.Port if err != nil { fmt.Printf("Failed to read from %s: %v\n", remoteAddr, err) continue } message := string(buf[:n]) parts := strings.Split(message, separator) if len(parts) != 2 { fmt.Printf("Received malformed message from %s: %s\n", remoteAddr, message) continue } // 切割 fmt.Print("parts from udp read :%v", parts) } } func ChkError(err error) { if err != nil { fmt.Fprint(os.Stderr, "Faltat error", err.Error()) os.Exit(1) } }