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()