racket-matrix-2012/tcp-api/non-os2-3.rkt

25 lines
597 B
Racket

#lang racket/base
(define (main port)
(define listener (tcp-listen port 4 #t))
(let loop ()
(define-values (cin cout) (tcp-accept listener))
(thread (connection-handler cin cout))
(loop)))
(define ((connection-handler cin cout))
(let connection-loop ()
(define v (read-byte cin))
(unless (or (eof-object? v) (equal? v #"\4"))
(write-byte v cout)
(flush-output cout)
(connection-loop)))
(close-input-port cin)
(close-output-port cout))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(main 5999)
(require racket/tcp)