Really embarrassed I can't figure out what's going on here, but I just 
spent the last two hours banging my head against this going nowhere.

I'm trying to create a simple echo server and client in Racket.

This is the server:

(define (hello_listen port)
    (define listener (tcp-listen port))
    (define (loop)
        (define-values (in out) (tcp-accept listener))
        (thread (lambda ()
                (copy-port in out)
                (close-output-port out)))

And this is the client:

(define (hello_socket port)
    (define-values (in out) (tcp-connect "localhost" port))
    (write "hello socket world\n" out)
    (display (read in)))

The client does not receive any text back, and just hangs on the read. 

When I write a simple client in Python however, the behavior is fine:

>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> s.connect(('localhost', 9999))
>>> s.send("hi")   
>>> s.recv(500)

What am I missing here in the Racket client code?

You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
For more options, visit

Reply via email to