If I understand correctly you simply need your main Racket thread to wait, for example, after your main thread calls your `start-server':
(start-server) (displayln "Server started. Press ENTER to quit.") (read-line) ;; End of your main RKT file On Sun, Nov 11, 2012 at 8:39 PM, Nathan Campos <natha...@dreamintech.net> wrote: > I'm having some fun with tcp-listen with Racket, here's the simple start > server function that I'm using: > > #lang racket > > (define start-server > (lambda ([port 8080]) > (current-custodian server-custodian) > ; Caps at 50 connections at the same time > (define listener (tcp-listen port 50 #t)) > (define (loop) > (accept-and-handle listener) > (loop)) > (define t (thread loop)) > (lambda () > (kill-thread t) > (tcp-close listener)) > (fprintf (current-output-port) "Server started listening at ~a" port))) > > It was running great on DrRacket, but when I tried to run it under racket > (the command-line executable) it shows the sever started message and quits, > so the server doesn't keep running. Is there anyway to make racket wait > until it's process gets killed or the user types something? > > Best Regards, > Nathan Campos > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users > ____________________ Racket Users list: http://lists.racket-lang.org/users