基于3g的android套接字编程

基于3g的android套接字编程,android,sockets,3g,Android,Sockets,3g,我已经设法通过wifi将信息从我的pc发送到我的android手机,如果它们共享同一网络。如果手机未连接到同一网络,即手机已连接到3g,是否可以以相同的方式将信息从pc发送到手机 在这种情况下,我必须使用什么ip地址?是不是更难?有人能告诉我/把我链接到某个网站吗 谢谢您的回答在这种情况下,您需要找到Android手机。你的电脑不知道他的IP地址 您可以使用DynDNS或类似服务,在DNS中动态注册您的手机。然后在PC上使用DynDNS客户端获取手机的ip 另一种方法是,PC拥有已知的IP地址。

我已经设法通过wifi将信息从我的pc发送到我的android手机,如果它们共享同一网络。如果手机未连接到同一网络,即手机已连接到3g,是否可以以相同的方式将信息从pc发送到手机

在这种情况下,我必须使用什么ip地址?是不是更难?有人能告诉我/把我链接到某个网站吗


谢谢您的回答

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

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

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


如果你有一个网站,还有另一种方法。编写一个脚本(例如devreg.php),将客户机的IP存储在db或文件中,并编写另一个脚本(devfind.php),从db/file读取IP并发送响应。所以,Android将首先向devreg.php发送请求,并保存IP。然后PC将请求devfind.php,并将发送Android的IP作为响应。

这是可能的,但您需要您的PC拥有一个可以从internet访问的公共IP地址。一般来说,公共ip是您必须为提供的internet服务支付额外费用才能获得的,因此如果您不确定是否有,答案可能是否定的。@FoamyGuy,任何连接到internet的PC都有一个公共ip——但通常只有一个,使用NAT在内部网络上的所有设备之间共享。你可能把它和静态IP混淆了,这是ISP收费的东西。好的,谢谢你的回答。但如果我只想让安卓系统给电脑打电话,电脑真的需要知道手机的IP地址吗?我希望PC是服务器,手机是客户端。当Android是连接启动器时,它需要知道PC的ip地址。如果PC位于NAT后面,则需要在其上设置端口重定向。如果PC外部IP是动态的,你可以使用DynDNS,这样你的Android设备就可以找到它。