[gambit-list] Web design with gambit question
feeley at iro.umontreal.ca
Wed Nov 25 12:47:32 EST 2009
On 2009-11-25, at 12:31 AM, Alfonso Urroz wrote:
> Marc, I know you have answered this before, but I just wanted to know, where is the web application file or files on Gambit Scheme?
I posted the following message to comp.lang.scheme not too long ago with the code for a barebones HTTP server.
Here's a barebones HTTP server for Gambit. It should be fairly
obvious how to extend this to your specific requirements, such as
handling forms. If you need something more general check out the
examples/web-server directory in the Gambit source code distribution.
;;; File: "simple-http-server.scm"
(define http-server-address "*:8000") ;; "*:80" is standard
(open-tcp-server (list server-address: http-server-address
(let loop ()
(let ((connection (read accept-port)))
(if (not (eof-object? connection))
(define (http-serve connection)
(let ((request (read-line connection)))
(if (string? request)
(read-all p (lambda (p)
(read-line p #\space))))))
(cond ((string-ci=? method "GET")
(http-get connection (cadr r)))
(println "unhandled request: " request)))))
(define (http-get connection document)
(print port: connection
"HTTP/1.0 200 OK\n"
"Content-Type: text/html; charset=ISO-8859-1\n"
"document requested: " document "\n"
More information about the Gambit-list