[英]Best way to communicate between an Android App and a JavaFX Application
我正在开发一个 JavaFX 音乐播放器,它可以通过 TCP 套接字与 Android 应用程序通信,显示来自音乐播放器的一些数据(例如:播放列表)。 Android 应用程序从数据库加载所有可用音乐播放器的列表。 在此列表中还有音乐播放器的当前 IP 和当前 PUBLIC_PORT。 然后,Android 应用程序可以通过 TCP 套接字和 PUBLIC_PORT 连接到播放器。 之后,音乐播放器向 Android 应用程序返回“PRIVATE_PORT”(以便应用程序可以通过 PRIVATE_PORT 与播放器进行通信),并开始侦听要连接的新客户端。
public void connectToServer() {
boolean end = false;
for(int i = 0; end == false; i++) {
try {
if(i > 100) {
end = true;
}
socket = new java.net.Socket(serveraddress,port);
end = true;
port = Integer.parseInt(getPortFromServer());
Log.d("", "Connected to engine on port" + port);
socket.close();
socket = new java.net.Socket(serveraddress,port);
readPlaylist();
Thread.sleep(1000);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
因为我认为这不是一个很好的解决方案,因为我需要很多 TCP 端口,所以我想知道是否有更好的方法来实现这一点。
我对不同实现的唯一想法是 RESTful 网络服务,但我确定这是否可行,因为我使用的是 JavaFX,我需要一个可执行文件来启动音乐播放器,而无需安装网络服务器。
编辑:另一个想法是在 Android 应用程序和 JavaFX 播放器之间放置一个网络服务器。 这样我就可以解决PORT问题。
通过使用 UDP 套接字解决了该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.