首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeMCU在试图调用net.socket:connect()时崩溃

NodeMCU在试图调用net.socket:connect()时崩溃
EN

Stack Overflow用户
提问于 2017-07-01 08:49:21
回答 1查看 485关注 0票数 0

我试图将一个广播包发送到某个端口,但是代码似乎产生了一些奇怪的错误,我找不到修复方法。我尝试过使用net.socket:connect(),然后调用" send ()“方法,但是没有工作,然后我说我应该使用net.socket:on('connection')并在那里发送,因为我假设net.socket:connect()不是同步的。但这也带来了一个奇怪的错误..。

对于此代码:

代码语言:javascript
复制
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中未受保护的错误(init.lua:24:尝试调用方法'connect‘(一个零值))

第24行是srv:连接线。

之后,我尝试先侦听连接事件,看看它是否以这种方式工作:

代码语言:javascript
复制
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中的无保护错误(init.lua:24:无效回调名)

第24行是srv:on('connection')线。

这里似乎发生了什么?google的结果并不多,因为很多人使用Arduino-IDE版本(顺便说一句,这仍然是nodemcu,还是您需要为ESP8266提供不同的固件?)我得到一个广播IP,它连接到AP。我没有在这里发布wifi连接部分,因为它可以工作,我使用它来测试mqtt和http连接。

我正在使用的版本Lua5.1.4在SDK2.1.0(116b762)上包含了net模块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-01 19:39:52

您的尝试都失败了,因为您似乎不认为UDP是一个无连接的协议。因此,UDP没有connect()on('connection'...

第一次尝试失败,因为需要在套接字上而不是在连接上调用send()。第二个失败是因为connection回调名仅适用于TCP,而不适用于UDP。

试着做这样的事情:

代码语言:javascript
复制
function sendBroadcastPacket()
  local port = 9001
  local bip = wifi.sta.getbroadcast()
  print(string.format("Broadcasting to %s:%d", bip, port))
  net.createUDPSocket():send(port, bip, "foo bar")
end

文档:https://nodemcu.readthedocs.io/en/latest/en/modules/net/#netudpsocket-module

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44859051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档