我正在为我非常简单的服务器编写一个非常简单的客户端。如果服务器没有运行,第 17 行会在运行时抛出 ConnectException,我不知道为什么。我查看了 Socket 的构造函数和 getInputStream() 的文档,但它们都没有抛出 ConnectException。我查看了 CE 的文档,它说“表示尝试将套接字连接到远程地址和端口时发生错误的信号。通常,连接被远程拒绝(例如,没有进程正在侦听远程地址/港口)。” 确实如此,服务器没有运行,但我不知道除了反复试验之外如何知道这一点,为什么它不在 Socket 的文档中?
import java.net.*;
import java.io.*;
public class ClientLesson {
//declare vars
static Socket socket;
static BufferedReader inputReader;
public static void main(String[] args) throws IOException {
try {
socket = new Socket("Lithium", 55555);
} catch (IOException ioe) {
System.out.println(ioe.toString());
}
try {
this is the problem --> inputReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (IOException ioe) {
System.out.print("couldn't get I/O stream");
ioe.printStackTrace();
}
String fromServer;
while ((fromServer = inputReader.readLine()) != null) {
System.out.println(fromServer);
}
inputReader.close();
socket.close();
}
}