babashka/test/babashka/scripts/socket_server.bb
Michiel Borkent a5f26aca3f Add test
2019-12-31 14:18:12 +01:00

22 lines
604 B
Clojure

(require '[babashka.wait :as wait])
(defn socket-loop [^java.net.ServerSocket server]
(with-open [listener server]
(loop []
(with-open [socket (.accept listener)]
(let [input-stream (.getInputStream socket)]
(print (slurp input-stream))
(flush)))
(recur))))
(defn start-server! [port]
(let [server (java.net.ServerSocket. port)]
(future (socket-loop server))
server))
(defn stop-server! [^java.net.ServerSocket server]
(.close server))
(let [server (start-server! 1777)]
(prn (wait/wait-for-port "127.0.0.1" 1777))
(stop-server! server))