about summary refs log tree commit diff stats
path: root/echo.lsp
diff options
context:
space:
mode:
authorDarren Bane <darren.bane@emdalo.com>2020-12-03 19:35:03 +0000
committerDarren Bane <darren.bane@emdalo.com>2020-12-03 19:35:03 +0000
commitda9f8c68fb8048a559626ea2d327a04b65c432c7 (patch)
tree88b1054c7e19c960966cda2347b4bebd6997deb9 /echo.lsp
parent29b8a4f8f178f83cffe2f41a3c22761030a8454a (diff)
downloadlsp-da9f8c68fb8048a559626ea2d327a04b65c432c7.tar.gz
Simplify TCP server
Diffstat (limited to 'echo.lsp')
-rwxr-xr-xecho.lsp30
1 files changed, 11 insertions, 19 deletions
diff --git a/echo.lsp b/echo.lsp
index 20b5e7e..4c788e6 100755
--- a/echo.lsp
+++ b/echo.lsp
@@ -42,24 +42,16 @@
 (defun echo-server ()
    ;; Server side (server addr : 127.0.0.1)
    (with-server-socket (server 8192 "tcp")
-        (let ((fds (create-vector 16 ()))
-              (fdr (create-vector 16 ()))
-              (fdw (create-vector 16 ())))
-             (select-clear fds)
-             (select-add server fds)
-             (while (eq (select 1 fds fdr fdw () 5.0) 0)
-                    (print "Waiting ...."))
-             (let ((client (accept server)))
-                  ;; Talk with client using standard I/O.
-                  (with-standard-input client
-                     (with-standard-output client
-                          (while t
-                                 (let* ((line1 (read-line))
-                                        (tag-len (length +content-length+))
-                                        (content-length (convert (subseq line1 (- tag-len 1) (length line1)) <integer>)))
-                                       (read-line)
-                                       (marshal (json-parse (read-chars content-length)))))))
-                  (close client))
-             (select-remove server fds))))
+        (let ((client (accept server)))
+             ;; Talk with client using standard I/O.
+             (with-standard-input client
+                (with-standard-output client
+                     (while t
+                            (let* ((line1 (read-line))
+                                   (tag-len (length +content-length+))
+                                   (content-length (convert (subseq line1 (- tag-len 1) (length line1)) <integer>)))
+                                  (read-line)
+                                  (marshal (json-parse (read-chars content-length)))))))
+             (close client))))
 (provide "echo")
 (echo-server)