Я пытаюсь отправить широковещательный пакет на определенный порт, но мне кажется, что код выдает странные ошибки, исправить которые я не могу. Я пробовал использовать net.socket: connect (), а затем вызвать метод send (), который не сработал, затем я сказал, что должен использовать net.socket: on ('connection') и отправить туда, поскольку я полагаю, что net.socket: connect () не синхронный. Но это тоже дало странную ошибку ...
Для этого кода:
function sendBroadcastPacket()
bip = wifi.sta.getbroadcast()
srv = net.createConnection(net.UDP,0)
print('Trying to connect on: ', bip)
srv:connect('9001', bip)
srv:send("Broadcast packet from: "..NODE_ID, function(sent)
print("Broadcasted packet! "..sent)
end)
end
Я получаю следующую ошибку:
ПАНИКА: незащищенная ошибка при вызове Lua API (init.lua: 24: попытка вызвать метод connect (нулевое значение))
Строка 24 - это строка srv: connect.
После этого я сначала попытался прослушать событие подключения, чтобы проверить, работает ли оно таким образом:
function sendBroadcastPacket()
bip = wifi.sta.getbroadcast()
srv = net.createConnection(net.UDP,0)
print('Trying to connect on: ', bip)
srv:on('connection', function(sck, c)
sck:send("Broadcast packet from: "..NODE_ID, function(sent)
print("Broadcasted packet! "..sent)
end)
end)
srv:connect('9001', bip)
end
Я получаю следующую ошибку:
ПАНИКА: незащищенная ошибка при вызове Lua API (init.lua: 24: недопустимое имя обратного вызова)
Строка 24 - это строка srv: on ('connection').
Что, кажется, здесь происходит? В Google не так много результатов, так как многие другие люди используют версию Arduino-IDE (кстати, это все еще nodemcu или вам нужна другая прошивка для ESP8266?). Я получаю широковещательный IP-адрес, и он подключается к точке доступа. Я не публиковал здесь часть подключения к Wi-Fi, потому что она работает, я использовал ее для проверки подключений mqtt и http, которые работали.
В сборке, которую я использую, Lua 5.1.4 на SDK 2.1.0 (116b762), включен модуль net.