簡體   English   中英

如何使用Java有效地聯網應用程序

[英]How to efficiently network an application in Java

我想知道是否有人可以給我一個線索。 情況是,我們有一台計算機具有服務器應用程序,其余計算機具有客戶端應用程序。 現在我的問題是我將如何跟蹤服務器的IP地址? 我想要的是讓客戶端自動搜尋服務器應用程序,而無需考慮IP地址並找到它,因為使用無線網絡的計算機正在使用DHCP。 因此,我想知道使用Java可以將任何東西掩埋在計算機中,而其他計算機可以通過它來識別應用程序。 謝謝。

如果它們在同一物理網絡上,則您的服務器可以通過UDP將其IP地址廣播到該子網的廣播地址。

您甚至可以遵循uPnP標准。

或者,您可以從其他已知位置(例如Web服務器)托管服務器的位置。 例如,在已知的Web服務器上調用一個操作以檢索服務器的IP地址。 這使您可以利用DNS查找第一個主機,然后從那里查找。

如@Peter Lawrey所提到的,“好的”方式是使用DNS(在生產環境中,恕我直言唯一的解決方案),我更喜歡該解決方案。

您還有另外兩種可能性:

  • 讓服務器在網絡上廣播其地址。
  • 讓客戶端掃描網絡。

這兩種解決方案都不理想,因為這會在網絡上產生大量噪音,可能會被防火牆阻止等等。因此,我真的建議您使用DNS。

如果您不能使用DNS解決方案,我會選擇一種允許客戶端搜索服務器的解決方案。

看看這個SO問題,可能會讓您入門。

如果您知道服務器的DNS名稱,則可以使用該名稱代替IP。 Java負責DNS查找。

否則,我想最簡單的解決方案是掃描網絡的IP范圍,然后嘗試連接到每個IP並測試其是否有效。

其他解決方案將包括服務器的廣播,並且將變得更加復雜,對於托管在小型網絡中的應用程序可能會顯得過大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM