-1

我正在使用 TCP 将我的 android 手机与 Windows 7 PC 连接起来。当我在局域网中发送消息电话-PC 时,此系统正常工作,因为我在 Internet 中使用此系统,她已关闭,因为 android 应用程序向我发送“超时”。为什么?

// The host name can either be a machine name, such as "java.sun.com", or a
// textual representation of its IP address
String host = "10.26.144.118";
int port = 20;
try {
    Socket socket = new Socket(InetAddress.getByName(host), port);
    BufferedReader reader = new BufferedReader(
                                new InputStreamReader(socket.getInputStream()));
    PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
    // true for auto flush
    writer.println("Hello World");
    myView.setText("Send hello world");
} catch (Exception e) {
System.out.println("Error" + e);
myView.setText("Error" + e);
}
4

2 回答 2

0

您的问题是您将LAN(局域网)与WAN(广域网)(即互联网)混为一谈。您的个人局域网受到外部保护。

您需要一个静态公共 IP 或 DDNS(动态 DNS)解决方案,例如dyndns。比您必须将流量从您的公共 IP 转发到您的内部服务器 IP。另请参阅thax的答案。

您的智能手机可以连接到您的静态公共 IP 或 DDNS 地址。比您的应用程序还应该与移动网络一起使用。

于 2012-06-05T17:50:25.593 回答
0

您可能正在寻找端口转发

于 2012-06-05T17:32:52.967 回答