1234567891011121314151617181920212223242526272829303132333435 |
- -- a simple telnet server
- telnet_srv = net.createServer(net.TCP, 180)
- telnet_srv:listen(2323, function(socket)
- local fifo = {}
- local fifo_drained = true
- local function sender(c)
- if #fifo > 0 then
- c:send(table.remove(fifo, 1))
- else
- fifo_drained = true
- end
- end
- local function s_output(str)
- table.insert(fifo, str)
- if socket ~= nil and fifo_drained then
- fifo_drained = false
- sender(socket)
- end
- end
- node.output(s_output, 0) -- re-direct output to function s_ouput.
- socket:on("receive", function(c, l)
- node.input(l) -- works like pcall(loadstring(l)) but support multiple separate line
- end)
- socket:on("disconnection", function(c)
- node.output(nil) -- un-regist the redirect output function, output goes to serial
- end)
- socket:on("sent", sender)
- print("Welcome to NodeMCU world.")
- end)
|