[英]How to find Socket.IO server on the same LAN?
我開發了一個連接同一網絡上的設備的應用程序。
任何設備都可以作為服務器,我希望客戶端能夠自動找到服務器,而無需用戶手動輸入服務器的 IP 地址。
這是我打算這樣做的方式:
這是正確的方法嗎? 我可以做得更快嗎? 同一個網絡上的IP總是在xxx(0->255)范圍內嗎?
如果相關,我同時使用 Java 和 JavaScript(Node.js)。
這里的一種選擇:而不是“迭代”地址范圍並向每個地址發送單獨的數據包; 您可以考慮向整個子網發送廣播。
換句話說:你的客戶只是大喊“我在這里”; 服務器“聽到”並響應; 類似於 DHCP 等協議的工作方式。
編輯關於如何對“廣播未接聽”做出反應的評論:
實際上,您現在越來越接近那些使“分布式”計算變得困難的主題。 可能會出現許多問題; 以及許多不同的解決方案。
它開始於:您是否進行一次廣播; 還是嘗試多次?! 並且可能會增加后續廣播之間的延遲?
事情是:這里沒有人可以告訴你。 答案在很大程度上取決於您的“域”,以及對您的應用程序用戶最有意義的內容。
我的建議是:研究現有的做類似事情的開源產品; 並研究他們發現了什么樣的問題; 以及他們如何處理。 我知道,這是相當廣泛的; 但那個“廣度”來自“整個主題真的很廣泛”。
udp 廣播是我的客戶端在本地網絡上找到我的服務器的方式。 服務器發回套接字服務器用於連接的端口號
當服務器運行時,響應幾乎是即時的,所以我只有 2 秒的超時時間,並且只嘗試一次
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.