【问题标题】:iOS device discovery without Bonjour没有 Bonjour 的 iOS 设备发现
【发布时间】:2014-01-28 17:48:42
【问题描述】:

我正在创建一个应用程序,该应用程序需要连接到在 wifi 网络上的其他设备上运行的自身版本。目标是在一台设备与其他设备之间建立广播/客户端关系。

我知道 Bonjour 是执行此操作的公认方法,但我不愿这样做,因为它会将我锁定在 iOS 设备中,而我想扩展到其他人,至少对于客户而言。

如果我在广播公司的特定端口(如 43231 或其他端口)上启动网络服务器,客户端设备是否可以获取自己的 IP,然后扫描广播公司的块范围?用这样的请求 ping 网络上的所有其他随机设备有什么不好的吗?

例如,广播公司是 192.168.1.11。客户端是 192.168.1.4。如果客户端假设所有设备都在 192.168.1.* 块中,它是否可以从 1-100 左右迭代行来寻找广播者?

如果这个方法很疯狂,我该怎么办?

【问题讨论】:

    标签: ios security wifi discovery


    【解决方案1】:

    您可以使用SSDP(由UPnP 使用)或只是multicast 通过网络发送消息并同时收听,忽略环回(如果您不希望发件人收到它自己的消息)。

    【讨论】:

    • 有趣。由于在事件开始之前我一直保持广播器处于被动状态,因此我实际上可以从客户端进行多播以“注册”它们。
    • 是的,我正在将这种方法用于类似于 Apple 的 AirDrop 的应用程序,并且运行良好..
    【解决方案2】:

    也许使用蓝牙低功耗进行广播/发现会更好?您可以在服务器上发送不可连接的广告数据包(使用它的 IP 地址)并在所有其他设备上监听它们。设备找到这样的数据包,读取 IP 地址并通过 NSURLConnection(或类似的东西)连接到它。

    【讨论】:

    • 那个范围是多少?
    • 理论上可达 50 米,但根据我的经验,您可以在 15-20m 的距离内获得良好的效果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2020-01-05
    • 2012-05-03
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多