从Linux到Android的Wi-Fi P2P

从Linux到Android的Wi-Fi P2P,android,linux,sockets,wifip2p,Android,Linux,Sockets,Wifip2p,我想通过编程将一个文件从运行Linux(客户端)的具有Wi-Fi访问的Raspberry Pi传输到Android手机(主机)。我用它来指导如何在Android上建立P2P连接,但我找不到任何在非Android设备上处理客户端的参考。我知道我可以用它来提供有关将客户端连接到主机的文档,但我没有关于如何实际发送文件的线索 本质上,我想知道的是:在Linux上我能做些什么,从Android文档中获得与此相同的效果?我完全被误导了吗 /** * Create a client socket with

我想通过编程将一个文件从运行Linux(客户端)的具有Wi-Fi访问的Raspberry Pi传输到Android手机(主机)。我用它来指导如何在Android上建立P2P连接,但我找不到任何在非Android设备上处理客户端的参考。我知道我可以用它来提供有关将客户端连接到主机的文档,但我没有关于如何实际发送文件的线索

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

/**
 * 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();
编辑:也许我很困,但如果设备连接好了,有没有一种方法可以简单地将其与其他设备进行类似的处理?Android文档说明它支持UPnP和Bonjour作为服务,如果这可以提供任何指导的话。如果是这样的话,在传输大型ish(最大5Gb)文件时,我应该注意什么?如果是无关的,我道歉


编辑2:建立连接的解决方案是在
wpa\u cli
中,特别是使用命令
p2p\u find
进行发现,
p2p\u peers
查看发现了什么,以及
p2p\u connect pbc go\u intent=0
停止搜索并连接到Android主机。您可以看到它显示为具有
ipa
的本地网络。然而,现在我似乎在Android端遇到了问题,冒险还在继续。

建立连接的解决方案是在
wpa\u cli
中,特别是命令
p2p\u find
来发现,
p2p\u peers
来查看发现它的原因,和
p2p\u connect pbc go\u intent=0
停止搜索并连接到Android主机。您可以看到它显示为具有
ipa
的本地网络。然而,现在我似乎在Android方面遇到了问题,对于任何感兴趣的人来说,冒险仍在继续。

我相信这是可能的。谷歌的“Raspberry Pi Wifi Direct”就是一个例子:我很欣赏这个发现,但这个例子几乎所有我找到的例子都有这个问题。说明以建立连接结束。我希望能够发送数据。