2014-10-09 162 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