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

23 lines
477 B
Racket

#lang racket/base
(require racket/tcp)
(define (main port)
(define listener (tcp-listen port 4 #t))
(let loop ()
(define-values (cin cout) (tcp-accept listener))
(thread
(lambda ()
(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)))
(loop)))
(main 5999)