1

我正在尝试运行 FreeCoap ( https://github.com/keith-cullen/FreeCoAP ) 以便能够在 Intel Galileo gen 上与 COAP 和 DTLS 进行通信。2 板。我已经看到开箱即用的测试可以正确编译和运行(只要我现在能够测试)。

我已经看到它准备在 IPv6 上运行。我不是这方面的专家,但我看到它的值主机配置为 ::1,我理解的是本地主机。当我尝试将其更改为 IPv4(即 127.0.0.1 或板的实际 IP 地址)时,我遇到了错误。

我已经看到它使用 netdb.h 来创建服务器。

#include <netdb.h> 
...    
#define HOST                 "127.0.0.1"  /**< Host address to listen on */
#define PORT                 "12436"  
...

unsigned char msg_id[2] = {0};
struct addrinfo hints = {0};
struct addrinfo *list = NULL;
struct addrinfo *node = NULL;

hints.ai_flags = 0;
hints.ai_family = AF_INET;      /* value = 2 preferred socket domain */
hints.ai_socktype = SOCK_DGRAM;  /* value = 3 preferred socket type */
hints.ai_protocol = 0;           /* preferred protocol (3rd argument to socket()) - 0 specifies that any protocol will do */
hints.ai_addrlen = 0;            /* must be 0 */
hints.ai_addr = NULL;            /* must be NULL */
hints.ai_canonname = NULL;       /* must be NULL */
hints.ai_next = NULL;            /* must be NULL */
ret = getaddrinfo(HOST, PORT, &hints, &list);

作为 getaddrinfo 的结果,我得到的是 -16 值,表示以下错误:

Error  : Device or resource busy

我已经尝试使用 searchignetstat -a并且没有使用这样的端口。

我错过了什么?什么资源很忙,不允许我获取地址?

4

0 回答 0