用nodemcu搭建服务器,
用lua调试(使用esplorer软件)
官方都会提供简单的例子
-- Start a simple http server
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
print(payload)
conn:send("<h1> Hello, NodeMCU!!! </h1>")
end)
conn:on("sent",function(conn) conn:close() end)
end)
建立完wifi后,wifi.sta.getip() 得到ip地址 192.168.1.104
访问 http://192.168.1.104/ 后出现错误提示
Bad response. The server or forwarder response doesn't look like HTTP.
分析可能是缺少和http相关的东西。
后找到其他类似程序,一个温度湿度的应用程序
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
local html = string.format("HTTP/1.0 200 OK\r\n"
.."Content-Type: text/html\r\n"
.."Connection: Close\r\n\r\n"
.."<h1> Hello, NodeMCU!!! </h1>")
conn:send(html,function(sent)
conn:close()
end)
end)
end)
对比发现,前段程序缺少http的定义,所以访问 http://192.168.1.104/ 就不能以http方式访问。
简单修改后
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
print(payload)
local html = string.format("HTTP/1.0 200 OK\r\n"
.."Content-Type: text/html\r\n"
.."Connection: Close\r\n\r\n"
.."<h1> Hello, NodeMCU!!! </h1>")
conn:send(html)
end)
conn:on("sent",function(conn) conn:close() end)
end)
结果:
<h1> Hello, NodeMCU!!! </h1>