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