【问题标题】:ARM MBED CoAP example mot opening portARM MBED CoAP 示例 mot 打开端口
【发布时间】:2017-03-21 10:38:49
【问题描述】:

我已在 K64F 板上成功构建了 ARM mbed (https://developer.mbed.org/teams/sandbox/code/coap-example/file/0681e205d0e9/) 的 CoAP 协议示例。它开箱即用,除了服务器名称 (coap.me) 更改为内部 IP 地址。

我看到它运行正常并连接到网络:

[EasyConnect] Using Ethernet
[EasyConnect] Connected to Network successfully
[EasyConnect] IP address 192.168.1.15
[EasyConnect] MAC address 0e:43:54:d9:7c:71
Connected to the network. Opening a socket...
Calculated message length: 11 bytes
Starting server
Sent 11 bytes to coap://192.168.1.10:5683

我设置了一台可以连接的电脑。它可以正确 ping 到主板,我看到 ARP 正在与正确的 MAC 地址协商。

我启动了 NMAP 测试,发现端口已关闭:

PORT     STATE     SERVICE
5683/udp closed    unknown

如果我在计算机 (Copper) 中设置 CoAP 客户端,我会在终端中看到没有连接。

我错过了什么?

【问题讨论】:

  • 消息在哪里丢失了?计算机没有收到请求,还是板子没有收到响应? coap-example 仅使用设备 -> 服务器 -> 设备进行测试,而不是服务器 -> 设备 -> 服务器...
  • Board -> 计算机消息到达(我没有服务器,但 tcpdump 可以看到)
  • 计算机 -> 未收到板消息。 (我在终端上看不到任何痕迹)
  • 是的,我认为对于 UDP 调用 bind() 然后有一个 recvfrom 钩子就足够了......
  • 它有效。我现在正在处理下一个问题。

标签: arm mbed coap


【解决方案1】:

也将其移至答案部分,以防其他人遇到此问题。

如果您想将 mbed OS 5 设备用作 UDP 服务器,请确保在套接字上调用 .bind()

【讨论】:

  • socket.bind(5683);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多