2013-02-17 41 views
2

如果他们共享相同的网络,我设法通过wifi将我的电脑信息发送到我的android手机。如果手机没有连接到同一网络,即手机连接到3g,是否可以用相同的方式从我的电脑向我的手机发送信息。3g以上的android套接字编程

在这种情况下,我必须使用哪个ip地址?难度更大吗?有人可以告诉我/关于这方面的一些网站吗?

谢谢你的回答

+0

这是可能的,但你需要你的电脑有一个公共IP地址,可以从互联网上获得。一般而言,公共知识产权是您必须为提供的互联网服务支付额外费用才能达到的,因此如果您不确定是否有答案,可能不会。 – FoamyGuy 2013-02-17 16:30:24

+0

@FoamyGuy,任何连接到互联网的PC都有一个公共IP地址 - 但它通常只有一个,它使用NAT在内部网络上的所有设备之间共享。您可能会将此与静态IP混淆,这是ISP收取的费用。 – 323go 2013-02-17 16:44:01

回答

0

在这种情况下,你需要找到Android手机。你的电脑不知道他的IP地址。

您可以使用DynDNS或类似的服务,在DNS中动态注册您的手机。然后使用PC上的DynDNS客户端获取手机的IP地址。

另一种方式是PC已知IP地址。因此,Android设备可以向它发送请求,PC记住Android的IP,然后在向Android发送信息时使用它。这种方法有两个缺点,即PC可以在NAT后面(它需要额外的管理工作),并且它可以具有动态IP。

如果您有一个网站,还有另外一种方法。编写一个脚本(例如devreg.php),用于将客户端的IP存储在数据库或文件中,另一个脚本(devfind.php)将从db/file中读取IP并作为响应发送。所以,Android会首先发送请求到devreg.php,并且它会保存IP。然后PC会要求devfind.php,它会发送Android的IP作为回应。

+0

好的谢谢你的回答。但在我只想让Android拨打电脑的情况下,电脑真的需要知道手机的IP地址吗?我希望PC能够成为服务器,而手机则是客户端。 – 2013-02-17 20:33:20

+0

当Android是连接发起者时,它需要知道PC的IP地址。如果PC位于NAT之后,则需要在其上设置端口重定向。如果PC外部IP是动态的 - 您可以使用DynDNS,以便您的Android设备可以找到它。 – 2013-02-18 05:54:04

+0

谢谢,我设法解决这个问题,感谢您的帮助! – 2013-02-23 23:08:16