All pastes #960490 Raw Edit

webserver

public lua v1 · immutable
#960490 ·published 2008-03-28 04:23 UTC
rendered paste body
WebServer ={	_port = 8080,	_header = header,}function WebServer:run()	socket = require("socket")	self._server = socket.bind("localhost", self._port)	self._server:settimeout(.01)	self._clients = {}	self._sendClients = {}	print("WebServer running on port "..self._port)	self:mainLoop()endfunction WebServer:lookForNewClients()	local client = self._server:accept()	if client then		client:settimeout(10)		table.insert(self._clients, client)		print('Got client')	endendfunction WebServer:mainLoop()	local clients = self._clients 	while true do 		self:lookForNewClients()     	local receivingClients, _, error = socket.select(clients, nil, 2)    	if error and error ~= "timeout" then			print("error = "..tostring(error))    	end		for i,client in pairs(receivingClients) do			if type(client) ~= "number" then				local data, error = client:receive()				if error then					print("error: "..tostring(error).." on client "..tostring(client))					table.remove(clients, i)				else					local response = self._header..largeTestString()					error, bytesSent = client:send(response)					print("bytesSent = ".. bytesSent.." bytes = "..strlen(response))					client:close()					table.remove(clients, i)				end			end		end 	endendfunction largeTestString()  local s = "Content-Type: text/html\n\n"  for i=1, 3000 do s=s..i.." " end  return sendWebServer:run()