package broadcast import ( "basic.com/valib/logger.git" "github.com/gogf/greuse" "strconv" "vamicro/config" "vamicro/system-service/sys" ) var ( port = 31995 ) //开启广播的接收端 func StartServer() error { localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) if localIp == "" { localIp = "0.0.0.0" } conn, err := greuse.ListenPacket("udp", localIp+":"+strconv.Itoa(port)) if err != nil { logger.Debug("ListenPacket err:", err) return err } defer conn.Close() buf := make([]byte, 1024) for { n, remoteAddr, err := conn.ReadFrom(buf) if err != nil { logger.Debug("read from broadcast buf err:", err) continue } logger.Debug("receive msg from broadcast:", string(buf[:n])) wn, we := conn.WriteTo([]byte("hello"), remoteAddr) logger.Debug("write broadcast resp err:", we, " wn:", wn) } }