Возьмите следующие основные программы:розетка Связь между отдельными Машинами
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
.
Есть ли способ заставить это работать?
Неясно, из вашего вопроса, что вы изменили IP-адрес с «0.0.0.0» на номер удаленного компьютера –