mirror of https://gitee.com/godoos/godoos.git
6 changed files with 1010 additions and 1253 deletions
File diff suppressed because it is too large
@ -1,47 +0,0 @@ |
|||
//go:build windows
|
|||
// +build windows
|
|||
|
|||
package localchat |
|||
|
|||
import ( |
|||
"encoding/json" |
|||
"fmt" |
|||
"log" |
|||
"net" |
|||
) |
|||
|
|||
func StartServiceDiscovery() { |
|||
// 解析多播地址
|
|||
addr, err := net.ResolveUDPAddr("udp4", broadcastAddr) |
|||
if err != nil { |
|||
fmt.Println("Error resolving multicast address:", err) |
|||
return |
|||
} |
|||
|
|||
// 监听本地网络接口上的多播地址
|
|||
conn, err := net.ListenMulticastUDP("udp4", nil, addr) |
|||
if err != nil { |
|||
fmt.Println("Error listening on multicast address:", err) |
|||
return |
|||
} |
|||
defer conn.Close() |
|||
|
|||
buffer := make([]byte, 1024) |
|||
for { |
|||
n, addr, err := conn.ReadFromUDP(buffer) |
|||
if err != nil { |
|||
log.Printf("Error reading from UDP: %v", err) |
|||
continue |
|||
} |
|||
fmt.Printf("Received message: %s from %s\n", buffer[:n], addr) |
|||
|
|||
var udpMsg UdpMessage |
|||
err = json.Unmarshal(buffer[:n], &udpMsg) |
|||
if err != nil { |
|||
fmt.Printf("Error unmarshalling JSON: %v\n", err) |
|||
continue |
|||
} |
|||
log.Printf("Get message: %+v", udpMsg) |
|||
OnlineUsers[udpMsg.IP] = udpMsg |
|||
} |
|||
} |
Loading…
Reference in new issue