Telnet 服务器示例

今天我在一个 ESP8266 模块上安装了 NodeMCU。

我制作了一个简单的 Telnet 服务器(登录到 AP 已经完成并连接)

 srv=net.createServer(net.TCP,7200)
srv:listen(23,function(conn)

    conn:on("receive", function(conn,telnetdata)
        print(telnetdata)

        conn:send("收到了\r\n")
    end)

    conn:on("sent",function(conn)

        print("[发送成功] ");
        --conn:close();
        --collectgarbage();
    end)

end)

我可以使用 Putty 登录到 ESP8266,并可以向 Putty 发送静态数据(conn:send("收到了\r\n"))。

我想做的是从 esp 串行端口(UART)向 Putty 发送数据。 我已经搜索了一遍,但没有找到成功的示例。顺便说一句,我正在使用 ESPlorer 来编程 ESP,并将数据发送回 Putty。

我想动态输入响应,而不是使用 conn:send("收到了\r\n")。我尝试过 uart:on 回调方法,但我还没有完全理解其工作原理。

点赞
用户131929
用户131929

NodeMCU在存储库中有一个“官方的”[Telnet示例](https://github.com/nodemcu/nodemcu-firmware/tree/release/lua_modules/telnet)。然而,那个也是基于WiFi / socket的。

如果您通过ESPlorer(即串行/ UART)连接到设备,则无法打开另一个串行连接。有关详细信息,请参见[https://stackoverflow.com/a/36779799/131929](https://stackoverflow.com/a/36779799/131929)。

2016-06-08 08:34:11
用户6439064
用户6439064

Marcel,感谢你的回答。

发布的链接并不完全是我需要的,但提供了好的信息。

最终,我想出了这段代码,它作为 putty 和微控制器(在这种情况下是 arduino mega 2560)之间的简单桥梁起作用。

socket = net.createServer(net.TCP,7200)
socket:listen(23,function(c)

    c:on("receive",function(c,l)
        uart.write(0, l)
    end)

    c:on("disconnection",function(c)
        -- 尚未实施
    end)

    uart.on("data", 0,
        function(data)
            c:send(data)
    end, 0)
end)
2016-06-09 02:34:11