원래애도 쓰레드로 움직이기는 한데..
여기서는 입출력부분을 쓰레드 영역으로 분리시켜보았다.
그다지 깨끗한 코드는 아니지만.. 어쨌든 이제 소켓 생성하고 데이터를 내보내는 것은 무난히 이루어짐..

여기서는 입출력부분을 쓰레드 영역으로 분리시켜보았다.
(defn echo-thread [socket]
(let [reader (new java.io.BufferedReader (new java.io.InputStreamReader (. socket getInputStream)))
out (. socket getOutputStream)
pout (new java.io.PrintStream out)
msg (. reader readLine)]
(. socket shutdownInput)
(. pout print msg)
(. out flush)
(. out close)
(. socket close)))
(defn test-srv3 []
(let [server (new java.net.ServerSocket 10013)]
(loop [nextClient (. server accept)]
(.start (new Thread (fn [] (echo-thread nextClient))))
(recur (. server accept)))
(. server close)))
그다지 깨끗한 코드는 아니지만.. 어쨌든 이제 소켓 생성하고 데이터를 내보내는 것은 무난히 이루어짐..
