Wi-Fi P2P 从 Linux 到 Android

Wi-Fi P2P From Linux to Android

我想以编程方式将文件从具有 Wi-Fi 访问权限的 Raspberry Pi 运行 Linux(客户端)传输到 Android phone (主持人)。我正在使用 this link as a guide for how to set up a P2P connection on Android, but I cannot find any references to handle the client side on non-Android devices. I understand I can use 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这边好像遇到了问题,冒险在.

继续

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