当前位置: 首页 > 知识库问答 >
问题:

java.net.ConnectException:拒绝连接

孙海
2023-03-14

我试图实现一个TCP连接,在服务器端一切正常,但当我运行客户端程序(从客户端计算机)时,我得到以下错误:

java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
        at java.net.Socket.connect(Socket.java:529)
        at java.net.Socket.connect(Socket.java:478)
        at java.net.Socket.<init>(Socket.java:375)
        at java.net.Socket.<init>(Socket.java:189)
        at TCPClient.main(TCPClient.java:13)

服务器代码:

//TCPServer.java

import java.io.*;
import java.net.*;

class TCPServer {
    public static void main(String argv[]) throws Exception {
        String fromclient;
        String toclient;

        ServerSocket Server = new ServerSocket(5000);

        System.out.println("TCPServer Waiting for client on port 5000");

        while (true) {
            Socket connected = Server.accept();
            System.out.println(" THE CLIENT" + " " + connected.getInetAddress()
                    + ":" + connected.getPort() + " IS CONNECTED ");

            BufferedReader inFromUser = new BufferedReader(
                    new InputStreamReader(System.in));

            BufferedReader inFromClient = new BufferedReader(
                    new InputStreamReader(connected.getInputStream()));

            PrintWriter outToClient = new PrintWriter(
                    connected.getOutputStream(), true);

            while (true) {

                System.out.println("SEND(Type Q or q to Quit):");
                toclient = inFromUser.readLine();

                if (toclient.equals("q") || toclient.equals("Q")) {
                    outToClient.println(toclient);
                    connected.close();
                    break;
                } else {
                    outToClient.println(toclient);
                }

                fromclient = inFromClient.readLine();

                if (fromclient.equals("q") || fromclient.equals("Q")) {
                    connected.close();
                    break;
                } else {
                    System.out.println("RECIEVED:" + fromclient);
                }

            }

        }
    }
}

客户端代码:

//TCPClient.java

import java.io.*;
import java.net.*;

class TCPClient {
    public static void main(String argv[]) throws Exception {
        String FromServer;
        String ToServer;

        Socket clientSocket = new Socket("localhost", 5000);

        BufferedReader inFromUser = new BufferedReader(new InputStreamReader(
                System.in));

        PrintWriter outToServer = new PrintWriter(
                clientSocket.getOutputStream(), true);

        BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
                clientSocket.getInputStream()));

        while (true) {

            FromServer = inFromServer.readLine();

            if (FromServer.equals("q") || FromServer.equals("Q")) {
                clientSocket.close();
                break;
            } else {
                System.out.println("RECIEVED:" + FromServer);
                System.out.println("SEND(Type Q or q to Quit):");

                ToServer = inFromUser.readLine();

                if (ToServer.equals("Q") || ToServer.equals("q")) {
                    outToServer.println(ToServer);
                    clientSocket.close();
                    break;
                } else {
                    outToServer.println(ToServer);
                }
            }
        }
    }
}

共有1个答案

南门棋
2023-03-14

此异常表示您试图连接到的IP/端口上没有服务侦听:

  • 您试图连接到错误的IP/主机或端口。
  • 尚未启动服务器
  • 服务器没有侦听连接。
  • 在Windows服务器上,侦听积压队列已满。
 类似资料:
  • 问题内容: 我正在尝试实现TCP连接,从服务器端一切正常,但是当我运行客户端程序(从客户端计算机)时,出现以下错误: 我尝试更改套接字号以防万一,但无济于事,有谁知道导致此错误的原因和解决方法。 服务器代码: 客户代码: 问题答案: 此异常意味着你尝试连接的IP /端口上没有侦听服务: 你试图连接到错误的IP /主机或端口。 你尚未启动服务器。 你的服务器没有监听连接。 在Windows服务器上,

  • 我正在尝试创建一个简单的eureka服务器,它将检测其他微服务,并且所有其他微服务都可以通过它进行对话。我使用的是spring Boot2.0.3。 java文件(EurekaServerApplication.java服务器) 我尝试将两边的所有属性移动到bootstrap.application文件中,但没有成功。 我尝试了这个解决方案:https://github.com/spring-cl

  • 我在Centos5.8上安装了Tomcat7。然后我执行了。/startup.sh和。/shutdown.sh,它工作得很好。

  • 我想在伪分布式模式下设置一个hadoop-cluster。我设法执行了所有的设置步骤,包括在我的机器上启动一个Namenode、Datanode、Jobtracker和一个Tasktracker。 运行会得到如下输出(我用替换了其中的一部分): 启动和将导致以下输出: 在此之后不久调用将得到: 我还注意到不工作:

  • 我有一个场景,从一个网站下载zip文件.当试图击中100个用户与jeter得到成功响应的所有100个用户,但当我尝试做同样的150个用户直到74个用户得到成功响应,这意味着用户下载zip文件没有任何错误,但其余用户得到以下错误:: 获取采样器结果:https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js代码:非HTTP响应代码

  • 问题内容: 我已经下载了最新版本的Firefox,即Quantum。对于Selenium,以前不需要为Firefox下载任何可执行文件来打开URL,但现在它抛出了为GeckoDriver设置属性的错误。 因此,我下载了最新版本的 geckodriver-v0.20.1-arm7hf.tar.gz 并将其放入,因此抛出了连接拒绝错误。 因此,我使用了替代方法在Chrome上打开URL。下载了chro