标签: bonjour

如何从 NWEndpoint.service 枚举案例解析地址和端口信息(如果可能)

目前我正在使用NetServiceBrowser查找 Bonjour 服务并解析相应的地址和端口。

为了NWBrowser简化我的代码,我偶然发现它似乎提供了一个非常简单的界面来处理 Bonjour 发现。

但是,browseResultsChangedHandler返回包含 enum case 端点的结果和更改service。我试图从结果中获取地址和端口信息,但似乎NWEndpoint必须是枚举类型 .hostPort。

理想情况下,我会使用端点连接到服务器NWConnection,但是,我使用的是另一个不NWEndpoint直接处理 的库。

是否有(简单的)方法可以从NWEndpoint.service结果中获取地址和端口信息?

import Foundation
import Network

let browser = NWBrowser(for: .bonjour(type: "_http._tcp", domain: ""), using: NWParameters())

browser.browseResultsChangedHandler = { (results, changes) in
    print("Results:")

    for result in results
    {
        if case .service(let service) = result.endpoint
        {
            debugPrint(service)
        }
        else
        {
            assert(false, "This nevers gets executed")
        }
    }

    print("Changes:")

    for change in changes
    { …
Run Code Online (Sandbox Code Playgroud)

macos bonjour dns-sd swift network-framework

7
推荐指数
1
解决办法
342
查看次数

NSNetServiceBrowser 在 iOS 14 上没有搜索错误 -72008

设置多点连接(使用 Bonjour)也会触发相同的错误。我用于启动 Bonjour 浏览和 Multipeer Connectivity 的代码是从 Apple 示例代码修改而来的,并且在 iOS 13 下运行良好。

networking bonjour ios multipeer-connectivity

7
推荐指数
2
解决办法
1100
查看次数

发现Zeroconf/Bonjour节点?

是否有一种简单的方法可以扫描给定的网络以获取Bonjour/Zeroconf服务?

我有一套计算机(Linux,Windows,Apple),并希望在我的Intranet中自动生成所有可用的支持Zeroconf的网络节点的列表.

bonjour zeroconf

6
推荐指数
2
解决办法
8763
查看次数

如何在Erlang中构建DNS查询记录?

我正在构建一个原生的Bonjour/Zeroconf库,需要构建DNS查询记录以广播到其他机器.我曾尝试通过Erlang源代码查找,但由于我对Erlang相对较新,因此它在所有inet_XXX.erl和.hrl文件的内容中变得非常密集.我有一个侦听器,用于接收和解析DNS记录有效负载,我只是无法弄清楚如何创建查询记录.我真正需要知道的是我需要传递给inet_dns:encode()来获取我可以发送的二进制文件.这是我想要做的.

{ok,P} = inet_dns:encode(#dns_query{domain="_daap._tcp.local",type=ptr,class=in})
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

10> test:send().
** exception error: {badrecord,dns_rec}
     in function  inet_dns:encode/1
     in call from test:send/0
11> 
Run Code Online (Sandbox Code Playgroud)

dns erlang bonjour zeroconf

6
推荐指数
1
解决办法
1691
查看次数

如何在Visual C++中宣传Bonjour服务

我试图弄清楚这是否可行,但是通过Visual C++宣传Bonjour服务的最简单方法是什么?

windows bonjour zeroconf visual-c++

6
推荐指数
1
解决办法
2989
查看次数

Bonjour/Avahi/People-Nearby协议之间的差异

我最近发现,通过Ubuntu的同理心客户端,存在一种协议,使用户能够与他的实际本地网络上的任何人交谈.似乎同理心称这项服务为" 人们附近 "和Windows" 我附近的人 ".

经过一些研究后,我发现了更多信息:似乎"协议"被称为Avahi(或Apple的Bonjour/Salut(?)),允许用户连接到网络上的用户,打印机和文件.

我的问题:

  1. Bonjour,Avahi,附近的人,附近的人...这些东西是同一个东西的不同名称,即连接到同一网络上的"东西"(用户/打印机/文件)?这些是Zeroconf的不同实现吗?
  2. 哪种IM支持这种协议?AIM,Trillian和Empathy都支持它,对吗?哪些可用于智能手机(Android)?我认为Trillian和WiChat也是如此,但仅适用于iOS.
  3. 是否有Android应用程序为即时消息实现Bonjour或Avahi的服务?

android bonjour zeroconf instant-messaging

6
推荐指数
2
解决办法
2666
查看次数

Windows上的Bonjour/DNS-SD

我目前正在开发一个跨平台的应用程序(Win/OSX/iOS),它有一个C++(带有Boost)后端.在iOS和OSX上,我使用Cocoa Net服务浏览器委托功能通过mDNS发现嵌入式设备,然后将信息传递到后端以创建与之通信所需的对象.

我想对我的Windows MFC前端采取类似的方法,我发现这篇文章看起来完全符合我的要求.然而,似乎使用Bonjour SDK有一些非常讨厌的副作用 - 强迫你到MFC的静态链接,在我的情况下,我可以让它正确链接的唯一方法是根本不使用调试DLL,这是不理想的.

所以,Bonjour SDK对我来说并没有什么好处,因为它对我的项目施加了太多限制.使用Cocoa,我实际上只使用了很少的功能 - 实际上只有didFindService和netServiceDidResolveAddress.我想要做的就是找到给定类型的设备并获取其IP地址.

任何人都可以建议另一种解决方案,这将与Windows上的MFC前端一起使用吗?

c++ mfc bonjour dns-sd

6
推荐指数
1
解决办法
6538
查看次数

在PlayBook/Blackberry上使用Bonjour/Zeroconf/jmDNS在网络上查找设备

我想开发一款可以在Blackberry PlayBook上运行的Android应用程序.应用程序需要在运行相同应用程序的本地网络上查找其他设备.

我正在考虑实施Bonjour/Zeroconf/jmDNS协议来寻找设备,但......

我刚学会了android权限

android.permission.CHANGE_WIFI_MULTICAST_STATE

Blackberry或PlayBook不支持.(需要首选jmDND(Bonjour)协议才能工作.)

https://bdsc.webapps.blackberry.com/android/apisupport/

你能给我一些建议吗?这是在PlayBook上实现这一目标的最佳方法.还有其他选择吗?

如果使用原生SDK或Adobe AIR构建,是否可以使用Bonjour?

bonjour zeroconf jmdns blackberry-playbook

6
推荐指数
1
解决办法
877
查看次数

如何使用apple bonjour for iOS阅读TXT记录

我试图在didFindService函数中获取TXTrecords,但我发现该值为null.

你有什么想法解决我的问题吗?

- (void)netServiceBrowser:(NSNetServiceBrowser*)netServiceBrowser didFindService:(NSNetService*)service moreComing:(BOOL)moreComing {
    [self.services addObject:service];

    NSDictionary* dict = [[NSNetService dictionaryFromTXTRecordData:[service TXTRecordData]] retain];
    MyTreeNode *node = [[MyTreeNode alloc] initWithValue:[service name]];
    NSString* info = [self copyStringFromTXTDict:dict which:@"info"];
    if([info isEqualToString:@"child"]) { // info == null and dict == null??
        [treeNode addChild:node];
    }
    [info release];
    if (!moreComing) {
        [self sortAndUpdateUI];
    }
}
Run Code Online (Sandbox Code Playgroud)

bonjour objective-c ios

6
推荐指数
2
解决办法
2348
查看次数

尝试使用python脚本在我的网络上发现iOS设备

尝试使用pybonjour但不确定它是否是我需要的.https://code.google.com/p/pybonjour/

我希望能够发现自动出现在我的网络上的iOS设备,稍后将基于此运行脚本,但首先我想在我的wifi网络上出现/消失后立即发现iOS设备.

那么问题是,我该怎么做?在安装了python27和pybonjour软件包的windows机器上运行时,这两个示例在pybonjour页面上运行,但是我使用我的网络中包含的脚本运行什么命令来发现iOS设备?或者这个只运行在我的电脑上运行此脚本的发现服务!

如果我走向错误的方向请告诉我,我似乎无法找到关于此包的文档!

python browse_and_resolve.py xxxxxx
Run Code Online (Sandbox Code Playgroud)

Thx Matt.

更新中...

本文和浏览器在查找我需要搜索的服务时很有帮助,http://marknelson.us/2011/10/25/dns-service-discovery-on-windows/.

例; (这发现了我的苹果电视,不在家里,所以无法检查iphone的名称!我假设是iphone!

python browse_and_resolve.py _appletv._tcp
Run Code Online (Sandbox Code Playgroud)

此外,如果您有Windows实用程序dns-sd.exe,它将搜索网络上可用的所有服务.我用它来找到我要找的东西.

dns-sd -B _services._dns-sd._udp
Run Code Online (Sandbox Code Playgroud)

更新中...

"Bonjour有两种使用方式: - 发布服务 - 检测(浏览)可用服务".

对于我想做的事情,我认为它不会起作用,因为ipad/iPhone不会宣传服务,除非我正在运行一个宣传一个的应用程序(或越狱我的iPhone/ipad然后ssh将打开) .还有什么想法吗?

python bonjour ios

6
推荐指数
1
解决办法
6525
查看次数