埃裏克,你的問題似乎比簡單得多已發出聲音。
這個問題已經存在了十年,也許兩年。這裏不需要重新發明輪子。
爲什麼輪詢/ ping命令是一個壞主意
由互聯網服務供應商所提供的動態IP可以具有可變的租用時間,但通常是至少24-72小時。每隔1到1米對服務器進行一次屏蔽就會造成可怕的資源損失,這可能會在72小時內造成4320個無用的HTTP請求。每個請求會說約300字節* 4,320浪費的http請求等於1。3mb浪費帶寬乘以100萬客戶端的目標客戶端數量,您正在談論的是一個每月浪費的帶寬約爲1.2 TB!這就是浪費的帶寬,而不是運行應用程序所需的其他帶寬,並提供有用的信息。
客戶需要比經常ping的更聰明。相反,他們應該能夠在啓動時檢查其IP地址是否與DNS匹配,然後只有在IP更改時才向服務器發送通知。這將減少數千倍的帶寬和服務器處理需求。
你所描述的動態DNS
是什麼,你所談論的「動態DNS」(既爲技術的描述性名稱,也一個公司,提供SaaS解決方案的名稱)。
動態DNS是一個非常簡單的DNS服務器,可以讓您快速更改名稱和IP地址之間的映射。通常這對於使用僅提供動態IP的ISP的設備很有用。只要動態IP上的路由器/服務器的IP發生變化,它就會通知動態DNS服務器該變化。
- 動態DNS的實際標準協議已有詳細記錄。從這裏開始:DNS Update API,我認爲你正在尋找的細節在這裏:DynDNS Perform Update。由於路由器硬件通常都有內置的DynDNS客戶端,每個人都想使用,所以大多數商業實現都非常接近相同的協議。
- 大多數路由器(甚至便宜的)都已經內置了動態DNS客戶端。 (您可以編寫自己的軟客戶端,但路由器可能是最有效的位置,因爲您的客戶端可能使用私有IP進行NAT轉換 - 您仍然可以這樣做,但需要花費更多的帶寬用於公共IP發現)
- 快速谷歌搜索「動態DNS Java客戶端」帶來了完整的源項目,像這樣的:Java DynDNS client(未經測試,只是說明搜查的權力)
其他注意事項您的系統架構
可以說IP客戶端映射的東西得到解決。你把它全部搞清楚了,它完美地工作,你總是知道每個客戶端的IP。你會有一個很好的可靠系統,用於從移動設備向客戶端傳輸文件嗎?我會說不。
手機和家用電腦都可以有多種連接類型,Wi-Fi,蜂窩數據,也許有線數據。這些網絡中的每一個都可能有不同的安全系統。因此,從蜂窩數據移動設備到家用路由器後面的WiFi筆記本電腦的連接將與連接到同一WiFi網絡上的筆記本電腦的WiFi移動設備看起來非常不同。
您可能需要與物理路由器防火牆進行抗衡。此外,家用電腦可能會啓用Windows防火牆,可能是諾頓互聯網安全,可能是賽門鐵克,也許AVG,也可能是防區警報等等。您是否知道所有這些潛在客戶的防火牆考慮因素?
他們爲什麼需要將他們的IP地址發送到服務器? – 2012-03-31 11:37:35
因爲我有移動設備連接到計算機,他們需要查詢上述服務器的計算機IP地址。由於計算機無法建立與設備的連接,設備需要啓動套接字連接 – Erik 2012-03-31 11:44:01
上述移動設備需要做什麼? – 2012-03-31 11:45:21