簡體   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