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

20 lines
499 B
Racket

#lang racket/base
(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)]))))))