我正在写一个Go来发送多播udp上的json数据:
func send(a string, messages chan interface{}) {
addr, err := net.ResolveUDPAddr("udp", a)
CheckError(err)
c, err := net.DialUDP("udp", nil, addr)
CheckError(err)
for {
msg := <-messages
myjson, err := json.Marshal(msg)
if err != nil {
fmt.Println("Error encoding JSON")
return
}
//Write to bytes to multicast UDP
c.Write([]byte(myjson))
time.Sleep(2 * time.Second)
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的json被转换为一个byte数组,以使其工作.这是我的"接收器"功能:
func serveMulticastUDP(a string, messages chan interface{}) {
addr, err := net.ResolveUDPAddr("udp", a)
CheckError(err)
l, err := net.ListenMulticastUDP("udp", nil, addr)
l.SetReadBuffer(maxDatagramSize)
for {
b := make([]byte, maxDatagramSize)
n, …
Run Code Online (Sandbox Code Playgroud)