]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/echo-server/echo-server.factor
echo-server: adding a simple echo server.
[factor.git] / extra / echo-server / echo-server.factor
diff --git a/extra/echo-server/echo-server.factor b/extra/echo-server/echo-server.factor
new file mode 100644 (file)
index 0000000..8764fbd
--- /dev/null
@@ -0,0 +1,23 @@
+! Copyright (C) 2012 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license.
+
+USING: accessors kernel io io.encodings.ascii io.servers ;
+
+IN: echo-server
+
+: echo-loop ( -- )
+    readln [ write "\r\n" write flush echo-loop ] when* ;
+
+: <echo-server> ( port -- server )
+    ascii <threaded-server>
+        swap >>insecure
+        "echo.server" >>name
+        [ echo-loop ] >>handler ;
+
+: echod ( port -- server )
+    <echo-server> start-server ;
+
+: echod-main ( -- ) 1234 echod drop ;
+
+MAIN: echod-main
+