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」獲取更多網絡

 

淘寶店鋪socket

相關文章
相關標籤/搜索