; Simple web server in Scheme ; This program works with MIT Scheme version 7.5 and later. (define (www serverport) (define sfd (open-tcp-server-socket serverport)) (define (serverloop n) ; n keeps track number of page loads (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 "This page has been accessed " cfd) (write-string (string-append (string n) " times\n") cfd) (write-string "