Megatest

Hex Artifact Content
Login

Artifact d17a548c7aa2148d3bc798f29b07e77c5f9bd2ea:


0000: 3b 3b 20 77 61 74 63 68 20 6e 61 6e 6f 6d 73 67  ;; watch nanomsg
0010: 27 73 20 70 69 70 65 6c 69 6e 65 20 6c 6f 61 64  's pipeline load
0020: 2d 62 61 6c 61 6e 63 65 72 20 69 6e 20 61 63 74  -balancer in act
0030: 69 6f 6e 2e 0a 28 75 73 65 20 6e 61 6e 6f 6d 73  ion..(use nanoms
0040: 67 29 0a 0a 28 64 65 66 69 6e 65 20 72 65 71 20  g)..(define req 
0050: 20 20 28 6e 6e 2d 73 6f 63 6b 65 74 20 27 72 65    (nn-socket 're
0060: 71 29 29 0a 28 64 65 66 69 6e 65 20 72 65 70 20  q)).(define rep 
0070: 20 20 28 6e 6e 2d 73 6f 63 6b 65 74 20 27 72 65    (nn-socket 're
0080: 70 29 29 0a 0a 28 6e 6e 2d 62 69 6e 64 20 20 20  p))..(nn-bind   
0090: 20 72 65 70 20 20 22 69 6e 70 72 6f 63 3a 2f 2f   rep  "inproc://
00a0: 74 65 73 74 22 29 0a 28 6e 6e 2d 63 6f 6e 6e 65  test").(nn-conne
00b0: 63 74 20 72 65 71 20 20 22 69 6e 70 72 6f 63 3a  ct req  "inproc:
00c0: 2f 2f 74 65 73 74 22 29 0a 0a 28 64 65 66 69 6e  //test")..(defin
00d0: 65 20 28 63 6c 69 65 6e 74 2d 73 65 6e 64 2d 72  e (client-send-r
00e0: 65 63 65 69 76 65 20 73 6f 63 20 6d 73 67 29 0a  eceive soc msg).
00f0: 20 20 28 6e 6e 2d 73 65 6e 64 20 73 6f 63 20 6d    (nn-send soc m
0100: 73 67 29 0a 20 20 28 6e 6e 2d 72 65 63 76 20 73  sg).  (nn-recv s
0110: 6f 63 29 29 0a 0a 28 64 65 66 69 6e 65 20 28 28  oc))..(define ((
0120: 73 65 72 76 65 72 20 73 6f 63 29 29 0a 20 20 28  server soc)).  (
0130: 6c 65 74 20 6c 6f 6f 70 20 28 28 6d 73 67 2d 69  let loop ((msg-i
0140: 6e 20 28 6e 6e 2d 72 65 63 76 20 73 6f 63 29 29  n (nn-recv soc))
0150: 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28  ).    (if (not (
0160: 65 71 75 61 6c 3f 20 6d 73 67 2d 69 6e 20 22 71  equal? msg-in "q
0170: 75 69 74 22 29 29 0a 09 28 62 65 67 69 6e 0a 09  uit"))..(begin..
0180: 20 20 28 6e 6e 2d 73 65 6e 64 20 73 6f 63 20 28    (nn-send soc (
0190: 63 6f 6e 63 20 22 68 65 6c 6c 6f 20 22 20 6d 73  conc "hello " ms
01a0: 67 2d 69 6e 29 29 0a 09 20 20 28 6c 6f 6f 70 20  g-in))..  (loop 
01b0: 28 6e 6e 2d 72 65 63 76 20 73 6f 63 29 29 29 29  (nn-recv soc))))
01c0: 29 29 0a 0a 28 74 68 72 65 61 64 2d 73 74 61 72  ))..(thread-star
01d0: 74 21 20 28 73 65 72 76 65 72 20 72 65 70 29 29  t! (server rep))
01e0: 0a 0a 28 70 72 69 6e 74 20 28 63 6c 69 65 6e 74  ..(print (client
01f0: 2d 73 65 6e 64 2d 72 65 63 65 69 76 65 20 72 65  -send-receive re
0200: 71 20 22 4d 61 74 74 22 29 29 0a 28 70 72 69 6e  q "Matt")).(prin
0210: 74 20 28 63 6c 69 65 6e 74 2d 73 65 6e 64 2d 72  t (client-send-r
0220: 65 63 65 69 76 65 20 72 65 71 20 22 54 6f 6d 22  eceive req "Tom"
0230: 29 29 0a 0a 3b 3b 20 28 63 6c 69 65 6e 74 2d 73  ))..;; (client-s
0240: 65 6e 64 2d 72 65 63 65 69 76 65 20 72 65 71 20  end-receive req 
0250: 22 71 75 69 74 22 29 0a 0a 28 6e 6e 2d 63 6c 6f  "quit")..(nn-clo
0260: 73 65 20 72 65 71 29 0a 28 6e 6e 2d 63 6c 6f 73  se req).(nn-clos
0270: 65 20 72 65 70 29 0a 28 65 78 69 74 29 0a        e rep).(exit).