采取以下基本计划:
import java.io.*;
import java.net.*;
public class TestServer {
public static void main(String[] args) throws IOException {
ServerSocket listener = new ServerSocket(12345);
try {
while (true) {
Socket socket = listener.accept();
try {
PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
out.println(new java.util.Date().toString());
out.close();
} finally {
socket.close();
}
}
} finally {
listener.close();
}
}
}
public class TestClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("0.0.0.0",12345); // Stack trace points to this line as the one with the error
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
in.close();
socket.close();
} catch (IOException e) {
System.err.println("IOException: " + e.getMessage());
}
}
}
TestServer
程序等待客户端连接到它,以便它可以向客户端发送信息,在本例中为当前日期。在我的IDE中的家用计算机(顺便说一下,JCreator),我可以在同一台计算机上同时运行TestServer
程序和TestClient
程序,并获得所需的结果。问题是当我在不同的计算机上运行TestClient
程序并尝试连接到TestServer
程序时,我不断收到消息IOException: Connection refused
。< / p>
有什么方法可以让它发挥作用吗?
答案 0 :(得分:1)
您尝试使用错误的IP地址( 0.0.0.0 )连接到服务器。
您需要知道运行服务器程序的计算机的IP地址,并使用它来实例化客户端程序中的套接字。
请注意,应该可以从客户端计算机访问服务器。