Files
zern/examples/udp_server.zr

18 lines
624 B
Plaintext

func main[] : i64
let s: net.UDPSocket = must(net.create_udp_server?(net.pack_addr(127, 0, 0, 1), 8000))
io.println("Listening on port 8000...")
while true
let pkt = net.udp_receive(s, 60000)
if pkt->size <= 0
net.UDPPacket.free(pkt)
continue
io.printf("%d.%d.%d.%d:%d\n", pkt->source_addr[4], pkt->source_addr[5], pkt->source_addr[6], pkt->source_addr[7], mem.read16be(pkt->source_addr + 2))
io.print_sized(pkt->data, pkt->size)
io.println("")
net.udp_send_to(s, pkt->source_addr, pkt->data, pkt->size)
net.UDPPacket.free(pkt)