当前位置: 首页 > 面试题库 >

Java网络:连接被拒绝-是的,我的服务器正在运行

阳勇
2023-03-14
问题内容

当客户端尝试连接到服务器套接字时,出现以下错误:

java.net.ConnectException: Connection refused: connect

但是,我的服务器确实在同一台机器上运行。我尝试使用路由器的外部IP连接到它。但是,当我尝试与进行连接时"localhost",它可以工作。而且,是的,我确实在路由器中正确转发了端口。甚至canyouseeme.org可以连接到我的服务器(该站点显示:“成功”,并且在我的服务器日志中显示有人与服务器连接。)

那么,由于一个或另一个原因,是否不可能通过外部IP连接到同一台计算机(或同一网络中的计算机)?还是这对于Windows很典型?(通常,我使用Linux)

我还尝试完全禁用Windows防火墙。

ServerSocket:

public ServerSocket ssocket;
public List<ClientHandler> handlers;

public Server(int port) { // Constructor
    try {
        ssocket = new ServerSocket(port);
        this.handlers = new ArrayList<ClientHandler>();
        IpSharingManager.uploadData(Utilities.getPublicIp(), port);
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
    }
}

客户:

public InvisibleClient(String host, int port) {
    try {
        System.out.println("Trying to connect to " + host + ":" + port);
        this.host = host;
        this.socket = new Socket(host, port);
        this.bis = new BufferedInputStream(this.socket.getInputStream());
        this.bos = new BufferedOutputStream(this.socket.getOutputStream());
        this.console = new RemoteConsole(this.socket);
        initializeCommunication();
        System.out.println("Successfully connected!");
        new Thread(this, "Client Thread").start();
    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("No server available");
    }
}

谢谢


问题答案:

某些路由器不允许内部网络连接到路由器的外部IP地址。

您可以尝试使用telnet连接到服务器套接字。如果telnet无法建立连接,则可能是网络问题。



 类似资料:
  • 问题内容: 我一直在尝试让一个简单的网络测试程序无法运行。 服务器: 客户: 当我使用127.0.0.1或我的内部IP作为主机名时,该程序运行良好。但是,每当我切换到外部IP地址时,都会引发错误。 我特意选择了一个不常见的端口,以查看是否是问题所在,但没有运气。使用telnet可以毫无问题地进行连接,但是当我尝试使用canyouseeme.org访问端口时,它表明连接超时。我什至尝试禁用所有防火墙

  • 我最终(认为)成功地安装了PostgreSQL和de psycopg2(我使用Windows)。顺便问一下,有什么方法可以检查它是否正常工作? 现在的问题是,我无法启动服务器,当我键入'python manage.py runserver'时,它显示(在命令末尾): 编辑1:我尝试将settings.py端口更改为5432,但现在错误消息是相同的,只是更改端口: 配置文件是这样的吗?我该换点东西吗

  • 我能够在库伯内特斯将两个节点聚集在一起。主节点似乎运行良好,但是在工作节点上运行任何命令都会导致错误:“拒绝与服务器localhost:8080连接——您指定了正确的主机或端口吗?” 来自大师(node1), 来自工作者(节点2), 我不知道如何解决这个问题。感谢您的帮助。 在执行时,"Journal alctl-xeu kubelet"我看到:"CNI未能检索网络命名空间路径:无法为终止的容器找

  • 问题内容: 前几天,我的GoDaddy托管网站遇到了一些问题。我打电话给他们的技术支持,与我交谈的人建议我的问题与我在Windows机器上,最好在Linux机器上使用有关。我对此没有意见,我同意了,他们把我换了。 过渡之后,我的PHPMailer功能让我迷茫了。我已经工作了几个月,所以我知道我的设置是正确的。我已与GoDaddy确认,从他们的角度来看,我要发送的帐户并未更改。用户侧未进行任何更改(

  • 我正在使用NAT开发一个微服务web应用程序(React和Node)并在GCP Kubernetes集群上运行它。 我无法连接到NAT流服务器POD。端口4222和8222是打开的。我收到连接拒绝错误。 $kubectl描述服务NAT-Srv

  • 我是库伯内特斯的初学者。我正在尝试安装迷你库贝,想在库伯内特斯中运行我的应用程序。我正在使用乌班图 16.04 我已遵循此处提供的安装说明https://kubernetes.io/docs/setup/learning-environment/minikube/#using-带有http代理的minikube 问题1:在安装了kubectl、virtualbox和minikube之后,我运行了命