From f11f4fd054cdd43d570bc4321d2fd5fddb662a19 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Tue, 5 Dec 2017 17:38:49 +0000 Subject: [PATCH] tcp-relay2.rkt --- racket/syndicate/examples/actor/tcp-relay2.rkt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 racket/syndicate/examples/actor/tcp-relay2.rkt diff --git a/racket/syndicate/examples/actor/tcp-relay2.rkt b/racket/syndicate/examples/actor/tcp-relay2.rkt new file mode 100644 index 0000000..2bce965 --- /dev/null +++ b/racket/syndicate/examples/actor/tcp-relay2.rkt @@ -0,0 +1,18 @@ +#lang syndicate +;; Simple TCP relay + +(require/activate syndicate/drivers/tcp2) + +(spawn (during (tcp-connection $id (tcp-listener 5000)) + (assert (tcp-accepted id)) + + (define root-facet-id (current-facet-id)) + (define outbound-id (gensym 'outbound-id)) + + (assert (tcp-connection outbound-id (tcp-address "localhost" 5999))) + (during (tcp-accepted outbound-id) + (on-stop (stop-facet root-facet-id)) + (on (message (tcp-in id $bs)) + (send! (tcp-out outbound-id bs))) + (on (message (tcp-in outbound-id $bs)) + (send! (tcp-out id bs))))))