racket-matrix-2012/os-udp-test-userland.rkt

21 lines
577 B
Racket

#lang racket/base
;; Trivial example program demonstrating os-udp.rkt working with os-userland.
(require racket/match)
(require "os-userland-stdlib.rkt")
(require "os-udp.rkt")
(ground-vm/stdlib
(userland
(lambda ()
(spawn display-driver)
(spawn read-line-driver)
(spawn udp-driver)
(poll)
(define s (rpc `(udp new 5555 65536)))
(let loop ()
(wait (message-handlers
[(udp-packet source (and sink (== s)) body)
(write `(udp (source ,source) (sink ,sink))) (newline)
(send (udp-packet sink source body))
(loop)]))))))