diff --git a/godo/libs/dir.go b/godo/libs/dir.go index 2dd2ed1..ae00bc8 100644 --- a/godo/libs/dir.go +++ b/godo/libs/dir.go @@ -7,6 +7,14 @@ import ( "runtime" ) +var UdpMap = map[string]any{ + "port": "20249", + "ips": []string{ + "224.0.0.251", + "255.255.255.255", + }, +} + func InitServer() error { err := LoadConfig() if err != nil { @@ -31,7 +39,7 @@ func InitServer() error { SetConfig(osInfo) udpAddr := ReqBody{ Name: "udpAddr", - Value: "224.0.0.251:20249", + Value: UdpMap, } SetConfig(udpAddr) } @@ -56,12 +64,12 @@ func GetOsDir() (string, error) { } return osDir.(string), nil } -func GetUdpAddr() string { +func GetUdpAddr() map[string]any { udp, ok := GetConfig("udpAddr") if !ok { - return "224.0.0.251:20249" + return UdpMap } - return udp.(string) + return udp.(map[string]any) } func GetAppDir() (string, error) { homeDir, err := os.UserHomeDir() diff --git a/godo/localchat/linux.go b/godo/localchat/linux.go index b0257f7..e4db650 100644 --- a/godo/localchat/linux.go +++ b/godo/localchat/linux.go @@ -9,8 +9,8 @@ import ( "net" ) -func SendBroadcast(message UdpMessage) error { - broadcastAddr := GetBroadcastAddr() +func SendBroadcast(broadcastAddr string, message UdpMessage) error { + addr, err := net.ResolveUDPAddr("udp4", broadcastAddr) if err != nil { log.Printf("Failed to resolve UDP address %s: %v", broadcastAddr, err) diff --git a/godo/localchat/udp.go b/godo/localchat/udp.go index d1797de..d3a0796 100644 --- a/godo/localchat/udp.go +++ b/godo/localchat/udp.go @@ -41,8 +41,12 @@ func InitBroadcast() { Message: "", } //发送多播消息 - - err = SendBroadcast(message) + //broadcastAddr := GetBroadcastAddr() + err = SendBroadcast("224.0.0.251:20249", message) + if err != nil { + log.Println("Failed to send broadcast message:", err) + } + err = SendBroadcast("255.255.255.255:20249", message) if err != nil { log.Println("Failed to send broadcast message:", err) } diff --git a/godo/localchat/windows.go b/godo/localchat/windows.go index ad6c9ee..897ece0 100644 --- a/godo/localchat/windows.go +++ b/godo/localchat/windows.go @@ -9,8 +9,8 @@ import ( "net" ) -func SendBroadcast(message UdpMessage) error { - broadcastAddr := GetBroadcastAddr() +func SendBroadcast(broadcastAddr string, message UdpMessage) error { + addr, err := net.ResolveUDPAddr("udp4", broadcastAddr) if err != nil { log.Printf("Failed to resolve UDP address %s: %v", broadcastAddr, err)