ESP8266 TCP Client(基于Lua脚本语言)

Init.lua代码

gpio.mode(4,gpio.OUTPUT)
gpio.write(4,1)

enduser_setup.start(
 function()
    print("Connected to wifi as:" .. wifi.sta.getip())
  end,
  function(err, str)
    print("enduser_setup: Err #" .. err .. ": " .. str)
  end
);


tmr.alarm(0, 1000, 1, function()
    gpio.write(4,1-gpio.read(4))
end)

tmr.alarm(1, 3000, 0, function()
    dofile("Client.lua")
end)

client.lua

ClientConnectedFlage = 0
TcpConnect = nil
tmr.alarm(1, 1000, 1, function()

    if  ClientConnectedFlage == 0 then
        Client = net.createConnection(net.TCP, 0) --创建一个TCP连接,连接的服务器IP和端口号
        Client:connect(8080,"192.168.1.223")

        Client:on("receive", function(Client, data) --网络接收到的数据发送到串口
            uart.write(0,data)
        end)
--连接上服务器进入这个函数        
        Client:on("connection", function(sck, c) 
            ClientConnectedFlage = 1  --置一连接上标志
            TcpConnect = Client       --把连接的socket赋值给TcpConnect,发送串口接收的数据到网络使用
            print("Link OK")      --停止这个定时器
            tmr.stop(1)

            Client:on("disconnection", function(sck, c)  --断开连接进入这个函数
                ClientConnectedFlage = 0          --连接标志清零
                TcpConnect = nil               --赋值为nil
                tmr.start(1)                 --启动这个定时器,好重新执行这个定时器里的函数,重新连接
            end)
        end)

        if  ClientConnectedFlage == 0 then
            print("Link Error")
        end
    end
end)


uart.on("data",0,function(data) 
    if  TcpConnect ~= nil then
        TcpConnect:send(data)      --串口数据发送到网络
    end
end, 0)


printip = 0
wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)
    printip = 0
end)


wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)
   if printip == 0 then
      print("+IP"..T.IP)
   end
   printip = 1
end)


扫码关注微信公众号  “小樊Study”获取更多

 

淘宝店铺

原文地址:https://www.cnblogs.com/fw-qql/p/11661284.html