现在,我正在编写一个服务器/客户端程序,允许用户动态地从Android手机控制他们计算机的不同部分。服务器在计算机上运行,客户端从Android手机运行。我正在使用套接字编程来执行此操作,计算机上的WinSocket和手机上的Android / Java套接字。
什么有效:
现在我的问题。当我尝试从手机上的客户端连接到计算机上运行的服务器时,当手机通过3G或4G 连接到互联网时,套接字什么都不做,并抛出套接字超时异常,并且服务器未从手机接收任何连接请求。我不明白这一点,因为像上面的第四件事一样,我使用的端口检查应用程序可以通过我的服务器程序,但我在下面发布的代码在3G / 4G上运行时没有做任何事情。
String hostName = "SERVER_NETWORK_EXTERNAL_IP_HERE";
int port = 58587;
SocketAddress address = new java.net.InetSocketAddress(hostName, port);
sock = new Socket();
sock.connect(address, 5000);
运行此代码时,屏幕顶部状态栏中的网络活动指示器不会报告出站网络活动,但如果我连接到wifi,则一切正常。有人有任何想法吗?