22 lines
604 B
Clojure
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))
|