2015-11-19 6 views
3

Я новичок в программировании NodeMCU для ESP8266. Мне нужно отправить строки на сервер и получить строки ответов. Поэтому я написал код, но он работает неправильно. Моя программа работает через время, а затем отображает сообщение о том, что память заполнена. Вы можете мне помочь?ESP8266 отправь и получить розетки

---------init funсtion----------------- 
wifi.setmode(wifi.STATION) 
wifi.sta.config("TP-LINK_ROBOT","63793246") 
wifi.sta.connect() 
--------------------------------------------- 

function hello (sck,c) 
    print (c) 
    sk:close() 
    if c == "Thank you" then 
    print("Great!") 
    end 
end 

function test() 
sk=net.createConnection(net.TCP, 0) 
sk:on("receive", hello) 
sk:on("sent", function(sck) end) 
sk:connect(9999,"192.168.0.100") 
sk:send("HELLO") 
print("sent to server") 
end 

test() 
+2

Вам обязательно нужно прочитать FAQ по http://www.esp8266.com/wiki/doku.php?id=nodemcu-unofficial-faq. Ответ vlad59 - это место. Вам нужно понять, что Lua полностью асинхронен, и поэтому вам нужно работать с обратными вызовами. –

+0

@ MarcelStör Спасибо –

ответ

3

Это код, который я использую с последней прошивкой разработчика. Я попытался приспособить его к вашему делу. Он должен работать так, как есть.

Как обычно с nodemcu, вы всегда должны помнить, что он сильно основан на событиях.

sk=net.createConnection(net.TCP, 0) 
sk:on("receive", function(sck, c) 
    print(c) 
    if c == "Thank you" then 
     print("Great!") 
    end 
end) 
sk:connect(9999,"192.168.0.100") 
sk:on("connection", function(sck,c) 
    -- Wait for connection before sending. 
    sk:send("HELLO") 
end) 
+0

Спасибо, это работает –

Смежные вопросы