aboutsummaryrefslogtreecommitdiff
path: root/server.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'server.rkt')
-rw-r--r--server.rkt58
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))
-