java.net.ConnectException:连接被拒绝

我正在尝试实现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);

}

}

}

}

}

回答:

此异常意味着你尝试连接的IP /端口上没有侦听服务:

  • 你试图连接到错误的IP /主机或端口。
  • 你尚未启动服务器。
  • 你的服务器没有监听连接。
  • 在Windows服务器上,侦听积压队列已满。

以上是 java.net.ConnectException:连接被拒绝 的全部内容, 来源链接: utcz.com/qa/436174.html

回到顶部