aboutsummaryrefslogtreecommitdiff
path: root/Hermes
diff options
context:
space:
mode:
Diffstat (limited to 'Hermes')
-rw-r--r--Hermes/concurrentreadandprint.rkt75
-rw-r--r--Hermes/tcpcommunication.rkt60
2 files changed, 0 insertions, 135 deletions
diff --git a/Hermes/concurrentreadandprint.rkt b/Hermes/concurrentreadandprint.rkt
deleted file mode 100644
index 95d02c1..0000000
--- a/Hermes/concurrentreadandprint.rkt
+++ /dev/null
@@ -1,75 +0,0 @@
-#lang racket
-(require math/base) ;; for random number generation
-
-;; a proof of concept
-;; one thread waits for input
-;; another displays messages in the background
-
-
-;; create custodian for managing all resources
-;; so we can shutdown everything at once
-;(define guard (make-custodian (current-custodian)))
-;(current-custodian guard)
-;; reads values continously from stdin and redisplays them
-(define (read-loop)
- (display (read-line))
- (display "\n")
- (read-loop)
- )
-
-(define input-prompt "input: ")
-(define output-prompt "output: ")
-
-;; prompt for username and bind to a variable username
-(display "What's your name?\n")
-(define username (read-line))
-(define usernamei (string-append username ": ")) ;; make username appear nicer in a prompt
-(define fair (make-semaphore 1))
-
-;; intelligent read, quits when user types in "quit"
-(define (read-loop-i)
-
-
- ;(semaphore-wait fair)
- (display usernamei)
- (define input (read-line))
- ;; do something over here with input maybe send it out
-
- ;; Tests input if its a quit then kills all threads
- ;; An if would be better here tbh
- (cond ((string=? input "quit") (begin (kill-thread a)
- (kill-thread t))))
- (display (string-append output-prompt input "\n"))
- ;(semaphore-post fair)
- (read-loop-i)
- )
-
-
-;; print hello world continously
-;; "(hello-world)" can be executed as part of background thread
-;; that prints in the event there is something in the input port
-(define (hello-world)
- (sleep (random-integer 0 15)) ;; sleep between 0 and 15 seconds to simulate coms
- ;; with server
- ;(semaphore-wait fair)
- ;; we will retrieve the line printed below from the server
- ;; at this time we simulate the input from different users
- (define what-to-print (random-integer 0 2))
- (if (= what-to-print 0)
- (display "Doug: What's up, up?\n")
- (display "Fred: Looking good, good!\n"))
- ;(semaphore-post fair)
- (hello-world))
-
-(define t (thread (lambda ()
- (read-loop-i))))
-(define a (thread (lambda ()
- (hello-world))))
-
-(thread-wait t) ;; returns prompt back to drracket
-;; below doesn't execute
-; (sleep 10)
-; (kill-thread t)
-; (define a (thread (display "hello world!\n")))
-; (display "John: hello soso\n")
-; (display "Emmanuel: cumbaya!!!!\n")
diff --git a/Hermes/tcpcommunication.rkt b/Hermes/tcpcommunication.rkt
deleted file mode 100644
index 134e697..0000000
--- a/Hermes/tcpcommunication.rkt
+++ /dev/null
@@ -1,60 +0,0 @@
-#lang racket
-;; Reads input iteratively then sends it to local server
-;; client reads back the message and displays it
-
-(require math/base) ;; for random number generation
-
-(define listener (tcp-listen 4326 5 #t))
-(define a (thread (lambda ()
- (define-values (s-in s-out) (tcp-accept listener))
- ; Discard the request header (up to blank line):
- ;(regexp-match #rx"(\r\n|^)\r\n" s-in)
- (sleep 10)
- (define (echo)
- (define input (read-line s-in))
- (displayln input s-out)
- (flush-output s-out)
- (if (eof-object? input)
- (displayln "Done talking\n")
- (echo)))
- (echo)
- (close-input-port s-in)
- (close-output-port s-out)
- (tcp-close listener)
- 'ok)))
-
-(define t (thread (lambda ()
- (define-values (c-in c-out) (tcp-connect "localhost" 4326))
- (define input-prompt "input: ")
- (define output-prompt "output: ")
-
- ;; prompt for username and bind to a variable username
- (display "What's your name?\n")
- (define username (read-line))
- (define usernamei (string-append username ": ")) ;; make username appear nicer in a prompt
- (define fair (make-semaphore 1))
-
- ;; intelligent read, quits when user types in "quit"
- (define (read-loop-i)
- ;(semaphore-wait fair)
- ; (display usernamei)
- (define input (read-line))
- ;; do something over here with input maybe send it out
-
- ;; Tests input if its a quit then kills all threads
- ;; An if would be better here tbh
- (cond ((string=? input "quit") (exit)))
- (display (string-append output-prompt input "\n") c-out)
- (flush-output c-out)
- (displayln (read-line c-in)) ;; server echoes back sent input
- ;(semaphore-post fair)
- (read-loop-i)
- )
- (read-loop-i)
- 'ok)))
-
-;(kill-thread a)
-;(kill-thread t)
-(thread-wait t)
-(display "DONE!!\n")
-