【问题标题】:Java Sockets with Openshift带有 Openshift 的 Java 套接字
【发布时间】:2015-03-14 14:59:45
【问题描述】:

通过使用很多文章和Stack Overflow问题,我终于能够成功地将Java Socket绑定到Openshift网站上的端口(端口8000)。

我知道绑定是成功的,因为没有抛出异常,并且我能够轮询 Socket 的端口号。在使用 rhc 客户端工具转发端口后,我还可以从我拥有的客户端应用程序成功连接到套接字。

问题是,如何在没有端口转发的情况下连接到服务器套接字?我无法从任何其他计算机连接到服务器,或者在没有端口转发的情况下从我自己的计算机连接到服务器。

这些是我迄今为止尝试过的事情:

  • 在端口 8000 连接到“localhost”,在端口转发后工作。
  • 在端口 8000 连接到网站 URL,始终返回 null。
  • 在端口 8000 连接到网站 IP,导致“连接被拒绝:连接”错误。

客户端代码:

    InetAddress ip = InetAddress.getByName("localhost"); 
        //Also tried '127.5.8.129' which openshift says is the website IP, and the website URL itself.
    Socket socket = new Socket(ip, 8000);

    PrintWriter out = new PrintWriter(socket.getOutputStream());
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

    out.println("Hello World");
    out.flush();

    System.out.println(in.readLine());

    socket.close();

编辑:我也可以将服务器套接字绑定到端口 8443,但仍然无法远程访问它。

【问题讨论】:

    标签: java sockets port openshift portforwarding


    【解决方案1】:

    您需要绑定到端口 8080,然后通过端口 8000 上的公共 url 访问您的应用程序。查看这篇 kb 文章以了解有关端口如何在 OpenShift 上工作的更多信息:https://help.openshift.com/hc/en-us/articles/203263674-What-external-ports-are-available-on-OpenShift-

    【讨论】:

    • 我想我在绑定到服务器端的 8080 端口时遇到了问题,但我现在会再试一次。
    • 当我尝试绑定到 8080 时,它说端口已经在使用中
    • 那么你已经有了一些东西,比如java服务器?在端口 8080 上运行。也许您可以向我们提供有关您正在运行的墨盒等的更多信息。
    • 我目前只有一个齿轮在运行,它是 Tomcat 7 (JBoss EWS 2.0)。我想这可能是 8080 已经在使用的原因,但我不知道我能做些什么。
    • 如果你想在 8080 端口上打开一个原始的 tcp 套接字,你需要使用 DIY 设备。
    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多