Files
2026-05-23 07:41:42 -05:00

45 lines
922 B
Go

package main
import (
"log/slog"
"net"
freeD "github.com/jwetzell/free-d-go"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "0.0.0.0:3333")
if err != nil {
slog.Error("error making UDP address", "err", err)
return
}
client, err := net.ListenUDP("udp", addr)
if err != nil {
slog.Error("error listening to UDP", "err", err)
return
}
defer client.Close()
for {
buffer := make([]byte, 2048)
length, _, err := client.ReadFromUDP(buffer)
if err != nil {
slog.Error("error reading from UDP", "err", err)
} else if length > 0 {
if length != 29 {
slog.Warn("received UDP packet with unexpected length", "length", length)
continue
}
var messageBytes [29]byte
copy(messageBytes[:], buffer[0:length])
message, err := freeD.Decode(messageBytes)
if err != nil {
slog.Error("error decoding", "err", err)
}
slog.Info("decoded", "message", message)
}
}
}