source: project/release/4/vandusen/trunk/vandusen-remote.scm @ 18259

Last change on this file since 18259 was 18259, checked in by Moritz Heidkamp, 11 years ago

vandusen: initial import

File size: 699 bytes
Line 
1(module vandusen-remote ()
2
3(import chicken scheme extras)
4(use vandusen tcp srfi-18 regex-case)
5
6(plugin 'remote
7        (lambda ()
8          (let ((listener (tcp-listen ($ 'remote-port))))
9            (add-finalizer (lambda ()
10                             (debug "finalizing remote listener")
11                             (tcp-close listener)))
12
13            (thread-start! (lambda ()
14                             (let loop ()
15                               (receive (in out) (tcp-accept listener)
16                                        (thread-start! (lambda ()
17                                                         (regex-case (read-line in)
18                                                           ((quote (: bos (submatch (+ (~ space)))
19                                                                      " " (submatch (+ any)) eos))
20                                                            (_ recipient message)
21                                                            (say message recipient)))
22                                                         (close-input-port in)
23                                                         (close-output-port out)))
24                                        (loop)))))))))
Note: See TracBrowser for help on using the repository browser.