使用Bonjour api

时间:2017-02-24 11:43:49

标签: c++ ios macos networking mdns

我想在通信过程中发现设备丢失连接。 Bonjour使用长TTL将设备输入保存在本地缓存中,因此如果我发现与设备的通信丢失,我想要调用DNSServiceReconfirmRecord来验证设备是否在网络中。

DNSSD_API DNSServiceReconfirmRecord(
DNSServiceFlags flags,
uint32_t        interfaceIndex,
const char      *fullname,
uint16_t        rrtype,
uint16_t        rrclass,
uint16_t        rdlen,
const void      *rdata
);

如何获得rdata值?任何人都可以指导我如何使用DNSServiceReconfirmRecord?我在上面的函数中除了rdata之外都需要所有信息。

1 个答案:

答案 0 :(得分:1)

您应该考虑rrtype,然后恰当地提供rdataWiki包含DNS记录类型列表。指针rdata应该指向资源记录的原始数据,即,创建它自己或找到可以的库。

示例:

如果rrtype == kDNSServiceType_PTRkDNSServiceType_PTR = 12),那么rdata必须指向RFC 1035中定义的“指针记录”。