From 3d0a635b62f90dade8ee7ea18721e6fea52a0fd5 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 16 Jan 2012 16:17:47 -0500 Subject: [PATCH] Better representation of local address. Still limited by BSD sockets API. --- os-udp-test.rkt | 2 +- os-udp.rkt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/os-udp-test.rkt b/os-udp-test.rkt index 22d9f39..dcba424 100644 --- a/os-udp-test.rkt +++ b/os-udp-test.rkt @@ -14,6 +14,6 @@ (let loop () (wait (message-handlers [(udp-packet source (and sink (== s)) body) - (display "UDP!\n") + (write `(udp (source ,source) (sink ,sink))) (newline) (send (udp-packet sink source body)) (loop)]))))) \ No newline at end of file diff --git a/os-udp.rkt b/os-udp.rkt index 9172fc6..2f2f76b 100644 --- a/os-udp.rkt +++ b/os-udp.rkt @@ -12,8 +12,8 @@ udp-driver) ;; A UdpAddress is one of -;; -- a Symbol, representing a local socket ;; -- a (udp-address String Uint16), representing a remote socket +;; -- a (udp-address #f Uint16), representing a local socket (struct udp-address (host port) #:prefab) ;; A UdpPacket is a (udp-packet UdpAddress UdpAddress Bytes), and @@ -30,7 +30,7 @@ (define s (udp-open-socket #f #f)) (when port-number (udp-bind! s #f port-number)) - (define sname (gensym 'udp-socket)) ;; !!! %%% TODO ? + (define sname (udp-address #f port-number)) (spawn (udp-sender sname s)) (spawn (udp-receiver sname s buffer-size)) (spawn (udp-closer sname s))