25 lines
597 B
Racket
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)
|