Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用wifi将数据发送到安装在其他android设备上的同一应用程序_Java_Android - Fatal编程技术网

Java 如何使用wifi将数据发送到安装在其他android设备上的同一应用程序

Java 如何使用wifi将数据发送到安装在其他android设备上的同一应用程序,java,android,Java,Android,我在我的android设备上安装了一个应用程序,如“A”,在另一个android设备上安装了相同的应用程序,如“B”,现在我想使用WIFI服务将数据从应用程序“A”发送到应用程序“B”。因此,请建议我如何实现此功能 我曾多次试图从谷歌那里得到帮助,但都是徒劳的。 这可以通过WIFI direct或NFC实现。您可以使用简单的p2p架构 您将需要使用和一对与您需要发送的数据类型相关的流,如 在发送方: Socket s = new Socket(IP,PORT); s.connect(); Dat

我在我的android设备上安装了一个应用程序,如“A”,在另一个android设备上安装了相同的应用程序,如“B”,现在我想使用WIFI服务将数据从应用程序“A”发送到应用程序“B”。因此,请建议我如何实现此功能

我曾多次试图从谷歌那里得到帮助,但都是徒劳的。
这可以通过WIFI direct或NFC实现。

您可以使用简单的p2p架构

您将需要使用和一对与您需要发送的数据类型相关的流,如

在发送方:

Socket s = new Socket(IP,PORT);
s.connect();
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.write("hello".toByteArray());
然后在接收器端:

ServerSocket ss = new ServerSocket(PORT);
Socket s = ss.accept(); //This call will block execution, use separate thread
DataInputStream dis = new DataInputStream(s.getInputStream);
byte[] data = dis.read();
有了它,您可以发送和接收字节,只需使用与您的数据类型一起工作的流即可

当然,一旦建立了连接,两个客户端都可以发送/写入,只需创建适当的输入/输出流即可


希望这能有所帮助。

最合适的方法是使用GCM和GCM接收器是的,我也有这个选项,但我只想在wifi上实现此功能,因为使用wifi用户可以在没有互联网的情况下进行通信。直接的
插座
连接可以工作,如果至少有一个设备没有防火墙,而另一个设备具有发现其IP地址的机制。你可能想读一读。GCM也是一个选项,但如果您尝试在设备之间建立点对点连接(听起来像是这样),则通常不会。是的,设置一个条件,即当wifi可用时,使用GCM将数据同步到其他设备,您的第二台设备将通过广播接收器接收通知。使用内置的网络服务发现API,您的第二台设备将发出尖叫,是的。您还需要以拒绝虚假连接尝试的方式实现通信协议(例如,通过要求复杂/加密安全的握手)。如果你真的担心你的一些数据可能被截获,考虑加密整个交换。如果答案已经解决了,请接受答案。