Files
zern/examples/udp_server.zr

23 lines
650 B
Plaintext

include "std/io.zr"
include "std/net.zr"
func main[] : i64
s, ok := net.create_udp_server("127.0.0.1", 8000)
if !ok
panic("net.create_udp_server failed")
io.println("Listening on port 8000...")
while true
pkt := s->receive(IP_MAXPACKET)
if pkt->size <= 0
pkt->free()
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("")
s->send_to(pkt->source_addr, pkt->data, pkt->size)
pkt->free()