【问题标题】:How to deal with the ConnectException in this concrete Server/Client model? (Java)如何处理这个具体的服务器/客户端模型中的 ConnectException? (爪哇)
【发布时间】:2020-11-07 02:10:33
【问题描述】:

我现在正在使用代码https://cs.lmu.edu/~ray/notes/javanetexamples/#chat。 在行中

var client = new ChatClient(args[0]);

您将主机名传递给构造函数。

我仍然收到“ConnectException:连接被拒绝”,试图通过 Internet(使用我的公共 IP)作为客户端连接到我的服务器,而我可以在本地连接到它(使用“localhost”)。我已经检查了防火墙、所有端口和服务器本身,但仍然得到它。 ping 我的 IP 有效,但连接被拒绝。

我是否可以作为客户端通过 Internet 从我的笔记本电脑连接到在我的笔记本电脑上运行的服务器?

痕迹:

Exception in thread "main" java.net.ConnectException: Connection refused: connect
    at java.base/sun.nio.ch.Net.connect0(Native Method)
    at java.base/sun.nio.ch.Net.connect(Net.java:503)
    at java.base/sun.nio.ch.Net.connect(Net.java:492)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)
    at java.base/java.net.Socket.connect(Socket.java:648)
    at java.base/java.net.Socket.connect(Socket.java:597)
    at java.base/java.net.Socket.<init>(Socket.java:520)
    at java.base/java.net.Socket.<init>(Socket.java:294)
    at ChatClient.run(ChatClient.java:71)
    at ChatClient.main(ChatClient.java:97)

因此,调用client.run() 尝试在传递的 IP 地址处打开套接字时会发生异常

var socket = new Socket(serverAddress, 50000);

我同时使用 50000 端口。

【问题讨论】:

  • 您没有提供太多信息。该错误告诉您没有人在目标 IP/端口上监听。您能否提供一个跟踪,以便我们可以与您指向的代码进行比较?另请参阅此答案stackoverflow.com/a/6876306/6708879
  • 我不确定工作流程:可能服务器在“127.0.0.1”处自动启动,因此尝试通过公共 IP 访问它没有成功。但这就是问题的原因-我试图找出一个问题:)是的,我已经浏览了您链接的帖子。它没有帮助,所以我在一个具体的例子中发布了这个问题。
  • 当你不给它一个 ip 时它会监听所有的接口,所以这应该不是问题(你可以给它 ip 0.0.0.0 来监听所有的接口)。可以用本地ip连接吗? (127.0.0.1 或您的网络之一)。您是否已将客户端和服务器添加到防火墙?这可能会阻止请求。通常,如果您可以 ping 一台机器但其他软件无法正常工作,请始终检查防火墙。要进行快速测试,只需将其关闭,如果它开始工作,请将程序添加到其中。

标签: java tcp server


【解决方案1】:

如果没有额外的工作,您不太可能直接从互联网连接到您的计算机。

您至少需要在路由器中进行端口转发,以将所有连接到端口 59001 的连接重定向到您的机器。

建议改用 ngrok 之类的东西:

ngrok http 59001

现在您应该可以连接到您的服务了

var socket = new Socket("http://CUSTOM_URL_PROVIDED_BY_NGROK.ngrok.io", 59001);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多