Skip to content

Instantly share code, notes, and snippets.

@higepon
Created May 28, 2009 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save higepon/119327 to your computer and use it in GitHub Desktop.
Save higepon/119327 to your computer and use it in GitHub Desktop.
(let ([server (make-server-socket "4649")])
(display "Echo server: START\n")
(let loop ([conn (socket-accept server)])
(let ([pid (spawn
(lambda ()
(display "child start\n")
(receive
[('connection conn)
(let loop ([data (socket-recv conn 100)])
(cond
[(zero? (bytevector-length data))
(socket-close conn)
(display "Echo server: STOP\n")]
[else
(format #t "received ~s\n" (utf8->string data))
(socket-send conn data 0)
(loop (socket-recv conn 100))]))]))
'((rnrs) (mosh concurrent) (mosh) (mosh socket)))])
(! pid `(connection ,conn)))
(loop (socket-accept server)))
(socket-close server))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment