【问题标题】:WiFi-Direct communication between Mac/Windows and AndroidMac/Windows 和 Android 之间的 WiFi-Direct 通信
【发布时间】:2012-07-28 04:52:32
【问题描述】:

是否可以让 Android (>4.0) 设备与 Mac OS 或 Windows 设备建立 WiFi-Direct 连接?

【问题讨论】:

标签: android windows macos wifi wifi-direct


【解决方案1】:

根据Wifi-Direct Docs协议允许:

Android 4.0(API 级别 14)或更高版本的设备具有适当的硬件,可通过 Wi-Fi 直接相互连接

Google 似乎并未通过 API 提供此功能。虽然 WiFi-Direct 不是专有协议,但可以在任何平台上实现。网上有一些帖子试图让 Wifi-Direct 在 Windows 下工作:

【讨论】:

    【解决方案2】:

    您只需要使用 java.net.Socket。取决于建立直接连接是什么意思。当您在目标设备(Windows 或 Mac)上通过 ServerSocket 打开侦听套接字时,就会建立 TCP 连接。在其他设备上,您可以使用带有目标地址的 Socket。当然,windows 或 mac 盒子可能必须在防火墙中打开该端口。

    我想你真正需要知道的是如何获取目标计算机的名称或如何发现本地网络上的计算机。不幸的是,我认为它不依赖于 android 版本。您应该查看http://en.wikipedia.org/wiki/Zero_configuration_networking 的一些提示。我担心需要在 android 上打开特权端口可能会出现问题,因为通常你必须是 root。这需要根植于安卓系统。

    当然,您应该指定使用该直接连接的目的以及您需要什么软件。如果两端都有您的应用程序,您可以在 android 上打开任何未分配和未授权的端口。使用 UDP 定期广播 android 设备的名称(适当要求用户输入他的设备名称)。使用多播发送请求,并以相同的方式接收回复。多播发送和接收将需要您在 android 和 windows 以及 mac 上的应用程序。现在您可以从多播应用程序中读取它是什么类型的机器,以及它为您的直接连接打开的本地端口。从 udp 消息的来源,您知道在哪里连接。

    您可以使用一些框架来加快速度。所有这些都需要一些有关网络的知识,但我不知道更简单且运行良好的解决方案。除非您提供有关您的直接联系的详细信息。

    【讨论】:

    • 只能在现有的 WiFi-Direct 连接上建立套接字。这就是我要的,而不是套接字连接。
    • OP 没有询问如何在已建立的网络上设置类似 TCP 的连接。相反,OP 想知道如何使用 WiFi-Direct 协议在计算机和 android 设备之间建立新的网络连接。
    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多