1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
(use zmq srfi-18 posix)
(define s (make-socket 'rep))
(bind-socket s "tcp://*:5563")
(print "Start server...")
(let loop ()
(let* ((msg (receive-message s))
(name (caddr (string-split msg " ")))
(resp (conc "World " name)))
(print "Received request: [" msg "]")
(thread-sleep! 0.0001)
(print "Sending response \"" resp "\"")
(send-message s resp)
(loop)))
|
>
>
|
|
<
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
(use zmq srfi-18 posix)
(define th1 (make-thread
(lambda ()
(let ((s (make-socket 'rep)))
(bind-socket s "tcp://*:5563")
(print "Start server...")
(let loop ()
(let* ((msg (receive-message s))
(name (caddr (string-split msg " ")))
(resp (conc "World " name)))
(print "Received request: [" msg "]")
(thread-sleep! 0.0001)
(print "Sending response \"" resp "\"")
(send-message s resp)
(loop)))))))
(define th2 (make-thread
(lambda ()
(let loop ((count 0))
(print "count is " count)
(thread-sleep! 0.1)
(if (< count 10000)
(loop (+ count 1)))))))
(thread-start! th1)
(thread-start! th2)
(thread-join! th1)
|