[英]Getting IP Address of another device (Sever) in Android
我正在嘗試構建一個將兩個或多個設備作為客戶端/服務器(使用套接字)連接的android應用程序。
但是問題出在客戶端設備上,用戶需要手動放置服務器設備的IP地址才能與服務器連接。 但是從客戶端我不知道服務器的IP地址。 而且我不想手動輸入。
有什么方法可以(以編程方式)獲取使用相同應用程序和相同網絡的服務器設備的IP地址?
任何幫助將不勝感激。 在先進的感謝。
終於嘗試了許多方法之后,我得到了一個解決方案
使用UDP廣播的網絡發現(信用轉到本文檔 )
(感謝@Fildor建議您實施此服務)。
解
使用UDP數據包並進行廣播! 但是,該技術並不是最佳方法,但是只要我們留在一個網絡中,這就不會成為問題。 UDP數據包很容易使用。
服務器實施
客戶實施
打開隨機端口上的套接字。
嘗試廣播到默認廣播地址(255.255.255.255)
遍歷所有計算機的網絡接口並獲取其廣播地址
將循環內的UDP數據包發送到接口的廣播地址
等待回復
收到回復后,請檢查包裝是否有效
有效時,獲取包裹的發件人IP地址; 這是服務器的IP地址
關閉插座! 我們不想在別人的計算機上留下開放的隨機端口
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.