#!/usr/bin/env chibi-scheme (import (scheme base) (chibi net)) (define (get-udp-address-info host service) (let ((hints (make-address-info address-family/inet socket-type/datagram ip-proto/udp))) (get-address-info host service hints))) ;; create and bind a udp socket (let* ((addr (get-udp-address-info #f 5556)) (sock (socket (address-info-family addr) (address-info-socket-type addr) (address-info-protocol addr)))) (bind sock (address-info-address addr) (address-info-address-length addr)) ;; for every packet we receive, just send it back (let lp () (cond ((receive sock 512 0 addr) => (lambda (bv) (send sock bv 0 addr)))) (lp)))