; Simple web server in scheme - yikes! ; This program works with MIT Scheme version 7.5 and later. (define (www serverport) (define sfd (open-tcp-server-socket serverport)) (define (serverloop) (let ((cfd (tcp-server-connection-accept sfd #t #f))) ; implement http protocol handshake (let ((instring (read-string (char-set #\linefeed) cfd))) (begin (write-string "HTTP/1.1 200 OK" cfd) (write-char #\newline cfd) (write-char #\linefeed cfd) (write-string "\n" cfd) (write-string "\n" cfd) (write-string "
Hello! This page is served by " cfd) (write-string "

Scheme!

\n" cfd) (write-string "\n" cfd) (write-string "\n" cfd) (write-string "\n" cfd) (write-string "
\n" cfd) (write-char #\newline cfd) (write-char #\linefeed cfd) (flush-output cfd) (close-port cfd) (serverloop))))) (serverloop))