簡體   English   中英

在Android中獲取另一台設備的IP地址(服務器)

[英]Getting IP Address of another device (Sever) in Android

我正在嘗試構建一個將兩個或多個設備作為客戶端/服務器(使用套接字)連接的android應用程序。

但是問題出在客戶端設備上,用戶需要手動放置服務器設備的IP地址才能與服務器連接。 但是從客戶端我不知道服務器的IP地址。 而且我不想手動輸入。

有什么方法可以(以編程方式)獲取使用相同應用程序和相同網絡的服務器設備的IP地址?

任何幫助將不勝感激。 在先進的感謝。

終於嘗試了許多方法之后,我得到了一個解決方案

使用UDP廣播的網絡發現(信用轉到本文檔

(感謝@Fildor建議您實施此服務)。

使用UDP數據包並進行廣播! 但是,該技術並不是最佳方法,但是只要我們留在一個網絡中,這就不會成為問題。 UDP數據包很容易使用。

服務器實施

  • 在服務器上打開一個偵聽UDP請求的套接字。
  • 制作一個處理UDP請求和響應的循環
  • 在循環內部,檢查收到的UPD數據包是否有效
  • 仍在循環中,將響應發送到IP地址和端口
    收到的數據包

客戶實施

  • 打開隨機端口上的套接字。

  • 嘗試廣播到默認廣播地址(255.255.255.255)

  • 遍歷所有計算機的網絡接口並獲取其廣播地址

  • 將循環內的UDP數據包發送到接口的廣播地址

  • 等待回復

  • 收到回復后,請檢查包裝是否有效

  • 有效時,獲取包裹的發件人IP地址; 這是服務器的IP地址

  • 關閉插座! 我們不想在別人的計算機上留下開放的隨機端口

暫無
暫無

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

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