2014-10-09 129 views
0

我是新來的android開發和socket編程。我試圖連接兩個使用套接字的不同網絡的手機。我能夠在同一個網絡或局域網上連接兩臺設備。我想問兩件事。 1.兩臺設備如何通過WIFI在3G和其他設備上進行通信。 2.什麼是這個字符串fe90 :: c762:7acc:a801:dc87%wlan。下面的鏈接有一個代碼,它將上面的字符串和另一個192.168.1.5這兩個字符串重新組合成一個ip地址。我不確定那個字符串是什麼。有人可以解釋嗎?謝謝!!Android的IP地址

Code that returns that string

回答

0

我試圖使用套接字

一般情況下,不會是能夠連接不同網絡的兩個手機。

如何可以在兩個設備可以溝通可以說,一個在3G等使用WIFI

一般情況下,這將是不可能的。大多數WiFi網絡發佈私人IP地址;大多數移動運營商發佈私人IP地址。您需要將其中一個或兩個都設爲公共IP地址,以便彼此直接通信。這是一個標準的P2P通信問題,與Android沒有任何特別的關係 - 您將遇到連接兩個不同網絡上的桌面的相同問題。

這是什麼字符串FE90 :: C762:7acc:A801:dc87%WLAN

也就是說an IPv6 addresszone index

+0

嗯..這就是我想要的。 P2P通信。就像你說的大多數Wifi網絡和移動運營商發佈私有IP那麼P2P是如何可能的? – user3787605 2014-10-09 16:40:00

+0

@ user3787605:在不同移動網絡上的兩臺設備之間,文字P2P可能不可用。我會假設你需要一些雙方都可以訪問的中間服務器。我建議在你喜歡的搜索引擎上搜索「android p2p library」。 – CommonsWare 2014-10-09 16:44:32

+0

我的應用程序的設計是,我將有一臺服務器,每當設備連接到互聯網時,每臺設備都將連接到服務器。如果設備A想要與設備B通信,則A將從服務器獲取B的IP地址,然後建立連接,然後開始p2p通信。但是你說這是不可能的。對吧? – user3787605 2014-10-09 16:57:51