У меня есть код сервера на Java, который я запускаю на своей машине, а мой друг имеет код клиента, который запускается на его машине. Когда он вводит мой IP-адрес, чтобы подключиться к моему серверу и получить дату, соединение терпит неудачу и ничего не происходит. Обратите внимание, что когда я запускаю серверные и клиентские программы на своем собственном компьютере и введите localhost в качестве адреса, соединение будет успешным, и я получаю сообщение о дате правильно. Я ищу возможные ошибки и проблемы, вызывающие это.Ошибка соединения сокета Java
Серверный код в Java:
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket listener = new ServerSocket(9999);
try {
while (true) {
Socket socket = listener.accept();
try {
PrintWriter out =
new PrintWriter(socket.getOutputStream(), true);
out.println(new Date().toString());
} finally {
socket.close();
}
}
}
finally {
listener.close();
}
}
}
Клиентский код в Java:
import javax.swing.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
String serverAddress = JOptionPane.showInputDialog(
"Enter IP Address of a machine that is\n" +
"running the date service on port 9999:");
Socket s = new Socket(serverAddress, 9999);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = input.readLine();
JOptionPane.showMessageDialog(null, answer);
System.exit(0);
}
}
Брандмауэр был бы моим первым предположением. (iptables/ufw/брандмауэр Windows) –
@SeanBright Ну, оба наших брандмауэра отключены: -/ – Ratep
@ Sepehr-Просьба предоставить stackTrace исключения, которое произошло! –