diff options
author | Ibrahim Mkusa <ibrahimmkusa@gmail.com> | 2017-03-29 23:59:07 -0400 |
---|---|---|
committer | Ibrahim Mkusa <ibrahimmkusa@gmail.com> | 2017-03-29 23:59:07 -0400 |
commit | bb0e49db30c0aad4c1cc4f0b1df0e2e33a5a70af (patch) | |
tree | 177775afc70befbc1bb9cadc43696202d59a3b7a /server.rkt | |
parent | 847a5d2b4307113c9c198c9d9d1958f2074a500d (diff) |
Added testdrive.md to describe experiments for feasibility and
reorganized some files
Diffstat (limited to 'server.rkt')
-rw-r--r-- | server.rkt | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/server.rkt b/server.rkt deleted file mode 100644 index bf72aff..0000000 --- a/server.rkt +++ /dev/null @@ -1,58 +0,0 @@ -#lang racket - -;; Both `server' and `accept-and-handle' change -;; to use a custodian. -;; To start server -;; (define stop (serve 8080)) -;; use your web browser to connect localhost:8080 greeted with "hello world" -;; (stop) to close the server - -(define (serve port-no) - (define main-cust (make-custodian)) - (parameterize ([current-custodian main-cust]) - (define listener (tcp-listen port-no 5 #t)) - (define (loop) - (accept-and-handle listener) - (loop)) - (thread loop)) - (lambda () - (displayln "\nGoodbye, shutting down all services\n") - (custodian-shutdown-all main-cust))) - -(define (accept-and-handle listener) - (define cust (make-custodian)) - (parameterize ([current-custodian cust]) - (define-values (in out) (tcp-accept listener)) - (thread (lambda () - (handle in out) ;; this handles connection with that specific client - (close-input-port in) - (close-output-port out)))) - ;; Watcher thread: - (thread (lambda () - (sleep 120) - (custodian-shutdown-all cust)))) - -(define (handle in out) - ; (server-loop in out) - (sleep 5) ;; wait 5 seconds to guarantee client has already send message - (define echo (read-line in)) ;; bind message to echo - (displayln (string-append echo "\n")) - ; echo back the message, appending echo - ; could regex match the input to extract the name - (writeln "Admin: Hello there" out) ;; append "echo " to echo and send back - (flush-output out) -) - -(define input-prompt "Hermes: ") - -(define (server-loop in out) - (define echo (read-line in)) - (displayln echo) - (display ">>> ") - - (define input (read)) - (writeln (string-append "Admin: " input) out) - (flush-output out) - ; (sleep 10) - (server-loop in out)) - |