nodemcu _ esp8266 server received data from android app and forward to esp8266 client

我是一名新手程序员,在 esp8266 上使用 lua。我有两个 esp8266 和一个安卓手机。其中一个 esp8266 是我的服务器,另一个是客户端。我想将数据从安卓应用程序发送到服务器,然后服务器将这些数据转发到 esp8266 客户端。我编写了服务器和客户端,但我认为这是错误的,服务器从手机接收到数据,但没有将其转发给客户端。

服务器监听端口 9000,当接收到数据时,将其转发到端口 9999。esp8266 客户端监听端口 9999。

以下是我的 esp8266 服务器代码:

有人能帮我吗?

wifi.setmode(wifi.SOFTAP)
wifi.ap.config({ssid="novin",pwd="12345678"})
print(wifi.ap.getip())

if sv~=nil then
    sv:close()
end

function creat_server()
    sv = net.createServer(net.TCP)
     sv:listen(8080, function(c)
      c:on("receive", function(c, pl)
        if(pl~=nil) then
          print(pl)
          data=pl
          pl=nil
        end
     end)
    end)
      if(data~=nil) then
        sck(data)
        data=nil
      end
end

function sck(data)
    sv:listen(9000,function(cc)
        cc:send(data)
        cc:on("receive", function(cc, dt)
            print(dt)
            data1=dt
        end)
        cc:on("sent",function(cc)
            print("data send!!!!!!!!!!")
        end)
    end)
end

creat_server()
点赞
用户4260559
用户4260559

我看到您之前发布的问题被暂缓,您的想法有点问题。作为服务器的 esp 无法按照您的意思“转发”数据,也就是说它不能同时作为服务器和客户端,最好让它一直作为服务器。因此,让我们重新审视并重建场景:

您有一个作为客户端的 Android 应用,它将通过 POST 方法向服务器节点发送一些数据,您可以在那里获取并存储它。然后,您可以通过从先前的服务器节点获取的 GET 方法在客户节点上获取数据。这是一种方式。

至于您提到的方法,首先,您提供的代码中端口号与您在问题中所说的不同,除此之外,您需要首先将节点初始化为 SOFTAP 并获取数据,之后将其配置为 STATION 并通过 http 模块发送数据。 简而言之,您提供的代码还有很多问题。

编辑: 您可以从此网站获取所需的全部文档和迷你示例, 如果您需要 http 模块,请查看该网站的此部分这里的文档说明如何根据您的需求正确配置您的 wifi。

P.S. 最近固件已经添加了 http 模块,如果您想要使用它而您的 IDE 无法识别其语法,请使用构建云构建自己的固件,这只需要 5 分钟。 对我来说,使用文档比使用网站上的示例代码更容易前进,这取决于您想选择哪种方式。

2016-07-12 16:59:00