【问题标题】:Wi-Fi P2P From Linux to AndroidWi-Fi P2P 从 Linux 到 Android
【发布时间】:2020-06-04 05:34:02
【问题描述】:

我想以编程方式将文件从具有 Wi-Fi 访问权限、运行 Linux(客户端)的 Raspberry Pi 传输到 Android 手机(主机)。我使用this link 作为如何在 Android 上设置 P2P 连接的指南,但我找不到任何参考资料来处理非 Android 设备上的客户端。我知道我可以使用this link 提供有关将客户端连接到主机的文档,但我不知道如何实际发送文件。

基本上,我想知道的是:从 Android 文档中,我可以在 Linux 上做些什么来获得与此相同的效果吗?我完全被误导了吗?

/**
 * Create a client socket with the host,
 * port, and timeout information.
 */
socket.bind(null);
socket.connect((new InetSocketAddress(host, port)), 500);

/**
 * Create a byte stream from a JPEG file and pipe it to the output stream
 * of the socket. This data is retrieved by the server device.
 */
OutputStream outputStream = socket.getOutputStream();
ContentResolver cr = context.getContentResolver();
InputStream inputStream = null;
inputStream = cr.openInputStream(Uri.parse("path/to/picture.jpg"));
while ((len = inputStream.read(buf)) != -1) {
    outputStream.write(buf, 0, len);
}
outputStream.close();
inputStream.close();

编辑:也许我困了,但如果设备已连接,有没有办法像this 一样简单地对待它? Android 文档声明它支持 UPnP 和 Bonjour 作为服务,如果这可以提供任何方向的话。如果是这样,在传输大型(最大 5Gb)文件时我应该注意什么?如果不相关,我很抱歉。

编辑 2:建立连接的解决方案是在wpa_cli 特别是,命令p2p_find 发现,p2p_peers 查看找到了什么,p2p_connect <MAC_of_peer> pbc go_intent=0 停止搜索并连接到 Android 主机。您可以看到它显示为带有ip a 的本地网络。但是,现在我似乎在 Android 端遇到了问题,冒险继续在this question

【问题讨论】:

  • 我相信这是可能的。谷歌搜索“Raspberry Pi Wifi Direct”,例如:raspberrypi.stackexchange.com/questions/45451/…
  • 我很欣赏这个发现,但是这个例子几乎每个我发现的例子都有问题。指令在建立连接时结束。我希望能够发送数据。

标签: android linux sockets wifip2p


【解决方案1】:

建立连接的解决方案是在wpa_cli中,特别是命令p2p_find发现,p2p_peers查看找到了什么,p2p_connect <MAC_of_peer> pbc go_intent=0停止搜索并连接到Android主机。您可以看到它显示为带有ip a 的本地网络。但是,现在我似乎在 Android 端遇到了问题,冒险继续在this question,任何有兴趣的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多