【发布时间】: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钩子就足够了...... -
它有效。我现在正在处理下一个问题。