【发布时间】:2013-01-27 19:41:10
【问题描述】:
我在android上写了一个简单的socket程序,服务端建立一个服务端socket等待传入的连接,客户端通过与服务端的ip地址建立连接来连接服务端。我使用 Sprint 的 3G Nexus S 作为服务器,使用 ATT 的 4G Samsung Galaxy S3 作为客户端。当我的客户端尝试连接时,它会抛出异常“没有到达目的地的路线”。但后来我切换到我的个人 WIFI 网络,它运行良好。有人可以帮我解决这个问题吗?或者在android中使用蜂窝网络建立套接字连接有什么特殊要求吗?谢谢!
我的客户端是:
socket = new Socket(serveripaddress, 8008);
out = new PrintWriter(socket.getOutputStream());
我的服务器端是:
ss = new ServerSocket(8008);
更新:我刚刚使用了 2 部 Sprint 手机来测试我的代码,它运行良好!!这只是一个特殊情况,我必须使用手机作为服务器,一般不推荐
【问题讨论】:
-
运营商防火墙通常不允许传入连接到移动设备。
-
那么,如果我使用同一运营商下的 2 部手机,它们会阻止连接吗?
-
我希望如此,但不能保证。它还可能取决于使用的 APN。我不会围绕这项工作制定任何计划。计划在中间放置一个服务器。
-
知道了,在这种特殊情况下,我必须使用手机作为服务器端,但感谢您的帮助,请发布您的 cmets 作为答案,我会选择您的最佳答案。