-- example for lsocket: a http server, using the rshttpd lib -- this is extremely simple, just echoes back the request headers and -- request details -- -- Gunnar Zötl , 2013-03 -- Released under MIT/X11 license. See file LICENSE for details. httpd = require "rshttpd" local server = httpd.new('0.0.0.0', 8000, 1000, print) local function tablify(tbl) local res = '' local k, v for k, v in pairs(tbl) do res = res .. '" end res = res .. "
' .. k .. "" if type(v) == "table" then res = res .. tablify(v) else res = res .. tostring(v) end res = res .. "
" return res end server:addhandler("post", function(rq, header, data) local res = table.concat{ "", rq.url, "
",
		'

POST ', rq.url, "

", "

Header

", tablify(header), "

Request

", tablify(rq), "data:
", data, "
", "
"} return "200", res, { ["X-MyCustomHeader"] = "MyValue" } end) server:addhandler("get", function(rq, header) local res = table.concat { "", rq.url, "
",
		'

GET ', rq.url, "

"} if rq.path == "/status" then res = res .. "

Status

" .. tablify(server:status()) else res = res .. table.concat{ "

Header

", tablify(header), "

Request

", tablify(rq)} end res = res .. "
" return "200", res, { ["X-MyCustomHeader"] = "MyValue" } end) local doomsday = false repeat server:step(0.1) until doomsday