aboutsummaryrefslogtreecommitdiff
path: root/feasibility_analysis
diff options
context:
space:
mode:
Diffstat (limited to 'feasibility_analysis')
-rw-r--r--feasibility_analysis/gui/windows.rkt9
-rw-r--r--feasibility_analysis/gui/windows2.rkt15
-rw-r--r--feasibility_analysis/tcpevents/README.md1
-rw-r--r--feasibility_analysis/tcpevents/server.rkt39
-rw-r--r--feasibility_analysis/tcpvanilla/README.md20
-rw-r--r--feasibility_analysis/tcpvanilla/client.rkt72
-rw-r--r--feasibility_analysis/tcpvanilla/client2.rkt43
-rw-r--r--feasibility_analysis/tcpvanilla/server.rkt58
-rw-r--r--feasibility_analysis/tcpvanilla/tcptalk.rkt30
9 files changed, 0 insertions, 287 deletions
diff --git a/feasibility_analysis/gui/windows.rkt b/feasibility_analysis/gui/windows.rkt
deleted file mode 100644
index 4524673..0000000
--- a/feasibility_analysis/gui/windows.rkt
+++ /dev/null
@@ -1,9 +0,0 @@
-#lang racket
-
-(require racket/gui/base)
-
-;; Create a new window via the frame class
-(define frame (new frame% [label "Example"]))
-
-;; Show frame(window) by calling it show method
-(send frame show #t) ;; you call object methods via send
diff --git a/feasibility_analysis/gui/windows2.rkt b/feasibility_analysis/gui/windows2.rkt
deleted file mode 100644
index 3f60c80..0000000
--- a/feasibility_analysis/gui/windows2.rkt
+++ /dev/null
@@ -1,15 +0,0 @@
-#lang racket
-
-(require racket/gui/base)
-
-(define frame (new frame%
- [label "Example"]
- [width 300]
- [height 300]))
-(new canvas% [parent frame]
- [paint-callback
- (lambda (canvas dc)
- (send dc set-scale 3 3)
- (send dc set-text-foreground "blue")
- (send dc draw-text "Don't Panic!" 0 0))])
-(send frame show #t)
diff --git a/feasibility_analysis/tcpevents/README.md b/feasibility_analysis/tcpevents/README.md
deleted file mode 100644
index 7c3ec21..0000000
--- a/feasibility_analysis/tcpevents/README.md
+++ /dev/null
@@ -1 +0,0 @@
-TCP communication racket concepts of events. For more see the racket guide.
diff --git a/feasibility_analysis/tcpevents/server.rkt b/feasibility_analysis/tcpevents/server.rkt
deleted file mode 100644
index 4313bda..0000000
--- a/feasibility_analysis/tcpevents/server.rkt
+++ /dev/null
@@ -1,39 +0,0 @@
-#lang racket
-
-(define (serve in-port out-port)
- (let loop []
- (define evt (sync/timeout 2
- (read-line-evt in-port 'any)
- (thread-receive-evt)))
- (cond
- [(not evt)
- (displayln "Timed out, exiting")
- (tcp-abandon-port in-port)
- (tcp-abandon-port out-port)]
- [(string? evt)
- (fprintf out-port "~a~n" evt)
- (flush-output out-port)
- (loop)]
- [else
- (printf "Received a message in mailbox: ~a~n"
- (thread-receive))
- (loop)])))
-
-(define port-num 4321)
-(define (start-server)
- (define listener (tcp-listen port-num))
- (thread
- (lambda ()
- (define-values [in-port out-port] (tcp-accept listener))
- (serve in-port out-port))))
-
-(start-server)
-
-(define client-thread
- (thread
- (lambda ()
- (define-values [in-port out-port] (tcp-connect "localhost" port-num))
- (display "first\nsecond\nthird\n" out-port)
- (flush-output out-port)
- ; copy-port will block until EOF is read from in-port
- (copy-port in-port (current-output-port)))))
diff --git a/feasibility_analysis/tcpvanilla/README.md b/feasibility_analysis/tcpvanilla/README.md
deleted file mode 100644
index b8e2883..0000000
--- a/feasibility_analysis/tcpvanilla/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-a simple experiment on communication via tcp ports
-
-a server runs continously servicing clients. Clients connect, send a message, and
-server replies with a message. Message should appear in each separate REPL area
-prompt
-
-run server.rkt in a REPL
-```
-,en server.rkt
-(define stop (serve 8080)) ;; starts serve listening at port 8080
-(stop) ;; to stop server and free the ports
-
-```
-
-run client.rkt in a separate REPL
-```
-,en client.rkt
-(define stop (client 8080)) ;; starts client talking to server at port 8080
-
-```
diff --git a/feasibility_analysis/tcpvanilla/client.rkt b/feasibility_analysis/tcpvanilla/client.rkt
deleted file mode 100644
index 967d2b9..0000000
--- a/feasibility_analysis/tcpvanilla/client.rkt
+++ /dev/null
@@ -1,72 +0,0 @@
-#lang racket
-
-;; Both `server' and `accept-and-handle' change
-;; to use a custodian.
-;; To start server
-;; (define stop (client 8080))
-;; use your web browser to connect localhost:8080 greeted with "hello world"
-;; (stop) to close the server
-
-(define (client port-no)
- (define main-client-cust (make-custodian))
- (parameterize ([current-custodian main-client-cust])
- ;; connect to server at port 8080
- (define-values (in out) (tcp-connect "localhost" port-no)) ;; define values
- ;; binds to multiple values akin to unpacking tuples in python
- ; (thread (lambda ()
- (chat in out)
- (close-input-port in)
- (close-output-port out))
- (custodian-shutdown-all main-client-cust))
-
- ; (sleep 60) ;; run for 3 minutes then close
- ; (define (loop)
- ; (write (read-line (current-input-port)) out)
- ; (flush-output out)
- ; (write (read-line in) (current-output-port))
- ; (define listener (tcp-listen port-no 5 #t))
- ; (define (loop)
- ; (accept-and-handle listener)
- ; (loop))
- ; (thread loop)))
- ; (custodian-shutdown-all main-client-cust)
- #| (lambda () |#
- ; (displayln "Goodbye, shutting down client\n")
- #| (custodian-shutdown-all main-client-cust)) |#
-
-(define (chat in out)
- ; (driver-loop in out)
- (writeln "Ibrahim: Hello, anyone in chat?" out)
- (flush-output out) ;; ports are buffered in racket must flush or you
- ;; will read #eof
- (sleep 10) ;; wait 10 seconds
- (define serv-message (read-line in))
- (displayln serv-message) ;; read the servers replay message which is original
- ;; with echo appended to it
- )
-
-; (define input-prompt "Hermes: ")
-
-(define (driver-loop in out)
- ; (prompt-for-input input-prompt)
- (display ">>> ")
- (define input (read))
- (writeln (string-append "Ibrahim: " input) out)
- (flush-output out)
- ; (sleep 10)
- (define output (read-line in))
- (displayln output)
- (driver-loop in out))
-
-
-#| (let ((input (read))) |#
-; )
-; (let ((input (read)))
-; (let ((output (mc-eval input the-global-environment)))
-; (announce-output output-prompt)
-; (user-print output)))
-; (driver-loop))
-;
-; (define (announce-output string)
-; (display string))
-#| |#
diff --git a/feasibility_analysis/tcpvanilla/client2.rkt b/feasibility_analysis/tcpvanilla/client2.rkt
deleted file mode 100644
index 47e3052..0000000
--- a/feasibility_analysis/tcpvanilla/client2.rkt
+++ /dev/null
@@ -1,43 +0,0 @@
-#lang racket
-
-;; Both `server' and `accept-and-handle' change
-;; to use a custodian.
-;; To start server
-;; (define stop (client 8080))
-;; use your web browser to connect localhost:8080 greeted with "hello world"
-;; (stop) to close the server
-
-(define (client port-no)
- (define main-client-cust (make-custodian))
- (parameterize ([current-custodian main-client-cust])
- ;; connect to server at port 8080
- (define-values (in out) (tcp-connect "localhost" port-no)) ;; define values
- ;; binds to multiple values akin to unpacking tuples in python
- (thread (lambda ()
- (send-message in out)
- (close-input-port in)
- (close-output-port out))))
- (sleep 20)
- ; (define (loop)
- ; (write (read-line (current-input-port)) out)
- ; (flush-output out)
- ; (write (read-line in) (current-output-port))
- ; (define listener (tcp-listen port-no 5 #t))
- ; (define (loop)
- ; (accept-and-handle listener)
- ; (loop))
- ; (thread loop)))
- (custodian-shutdown-all main-client-cust)
- #| (lambda () |#
- ; (displayln "Goodbye, shutting down client\n")
- #| (custodian-shutdown-all main-client-cust)) |#)
-
-(define (send-message input-port output-port)
- (writeln "Doug: Hello, how's it going?" output-port)
- (flush-output output-port) ;; ports are buffered in racket must flush or you
- ;; will read #eof
- (sleep 10) ;; wait 10 seconds
- (define serv-message (read-line input-port))
- (displayln serv-message) ;; read the servers replay message which is original
- ;; with echo appended to it
- )
diff --git a/feasibility_analysis/tcpvanilla/server.rkt b/feasibility_analysis/tcpvanilla/server.rkt
deleted file mode 100644
index bf72aff..0000000
--- a/feasibility_analysis/tcpvanilla/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))
-
diff --git a/feasibility_analysis/tcpvanilla/tcptalk.rkt b/feasibility_analysis/tcpvanilla/tcptalk.rkt
deleted file mode 100644
index d069851..0000000
--- a/feasibility_analysis/tcpvanilla/tcptalk.rkt
+++ /dev/null
@@ -1,30 +0,0 @@
-#lang racket
-
-(define listener (tcp-listen 8083 5 #t)) ;; listener to service connection requests
-;; client attempts to connect. Receives an input and output port
-(define-values (client-in client-out) (tcp-connect "localhost" 8083))
-;; server accepts the connection request. Also gets a pair of ports
-(define-values (server-in server-out) (tcp-accept listener))
-
-;; client sends identifying message
-(display (string-append "Client:My name is " "Ibrahim" "\n")
- client-out)
-(flush-output client-out) ;; must flush as ports are buffered in racket
-
-;; server receives and reads it
-;; cooler if on separate racket instances
-(read-line server-in) ;; --> "Client:My name is #hostname.
-;; server replies
-(display (string-append "Server:Hi " "Ibrahim" "\n") server-out)
-(flush-output server-out) ;; flush flush
-
-;; client displays server message
-(read-line client-in)
-(close-output-port server-out)
-(close-output-port client-out)
-(read-line client-in) ;; --> eof object #eof
-(read-line server-in) ;; --> eof object #eof
-(tcp-close listener)
-; (custodian-shutdown-all (current-custodian)) ;; release all resources including
- ;; tcp, file, custom ports
- ;; application exits