Files
zern/examples/udp_server.zr

20 lines
658 B
Plaintext

func main[] : i64
~s, ok := net.create_udp_server(net.pack_addr(127, 0, 0, 1), 8000)
if !ok
panic("net.create_udp_server failed")
io.println("Listening on port 8000...")
while true
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)