繁体   English   中英

在 Android 应用程序和 JavaFX 应用程序之间进行通信的最佳方式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM