presentations/rivet/example1.tcl (14 lines of code) (raw):

proc Serve {chan addr port} { fconfigure $chan -translation {auto binary} set line [gets $chan] if { [catch { set fl [open ".[lindex $line 1]" r] } err] } { puts $chan "HTTP/1.0 404 Not Found\r\n" } else { puts $chan "HTTP/1.0 200 OK" puts $chan "Content-Type: text/html\r\n\r\n[read $fl]" } close $chan } set sk [socket -server Serve 5151] fconfigure $sk -buffering line vwait forever