首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java客户端-服务器应用程序仅在本地网络中工作

Java客户端-服务器应用程序仅在本地网络中工作
EN

Stack Overflow用户
提问于 2015-07-27 23:47:21
回答 2查看 957关注 0票数 2

我制作了一个简单的java客户机-服务器应用程序,客户端(android手机)向服务器(pc)发送消息,但是它们都连接到同一个网络。如何通过互联网而不是本地主机进行相同的服务?例如,在我的手机上使用3G。我也试过使用我的公共IP,但没有起作用。我的服务器就是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
    import java.io.*;
    import java.net.*;
    import java.util.Scanner;

    public class PCServer {

        public static void main(String[] args) throws IOException {

        ServerSocket server = new ServerSocket(5000);

        Socket client = server.accept();
        Scanner s = new Scanner(client.getInputStream());
        while (s.hasNextLine()) {
            System.out.println(s.nextLine());
        }

        s.close();
        server.close();
        client.close();     
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2015-07-28 00:11:06

要从网络之外访问本地主机,您必须做一些事情。

  1. 在防火墙中:允许进入您的服务器监听的端口上的连接。
  2. 在本地路由器中:将所有入站连接转发到具有相同端口的本地计算机的IP上。
  3. 用客户端应用程序中的公共IP替换本地主机。

注意:要使这个解决方案可用,您应该有一个静态IP,这样您就可以依赖它,并在您的客户端应用程序中使用它。

票数 1
EN

Stack Overflow用户

发布于 2015-07-28 00:11:11

当你说你的公共IP时,我想你指的是当你点击像我的ip是什么?这样的网站时,桌面浏览器所表达的公共IP。

这与Java或Android无关。

  • 你的ISP不会给你的电脑(甚至你的路由器)一个公共IP。即使是这样,它也将是NATed
  • 如果您想要这样做,那么您需要联系您的ISP,以获得一个公共IP地址。通常情况下,它是静态的,但并不总是静态的,而且您可能不得不专门要求它。
  • 然后,您必须配置您自己的设备,以处理和路由公共请求到您的个人电脑。

或者,您可以使用赫鲁库并将其称为“好”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31665237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档