Может ли кто-нибудь оказать мне некоторую поддержку в этом: у меня есть следующие классы сокетов клиента и сервера:
public class Client {
public static void main(String[] args) {
String servername = "localhost";
int port = 21000;
Socket sc = null;
boolean test = true;
while(test) {
try {
sc = new Socket(servername, port);
PrintWriter out = new PrintWriter(sc.getOutputStream(), true);
for(int i = 0; i < 100 ; i++) {
out.println("number " + i + " transmitted !");
System.out.println("number " + i + " transmitted !");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
test = false;
} catch (IOException e1) {
e1.printStackTrace();
try {
sc.close();
} catch (IOException e) {
e.printStackTrace();
}
continue;
}
}
}
}
public class Server {
public static void main(String[] args) {
int port = 21000;
try(ServerSocket serverSocket = new ServerSocket(port);
Socket sc = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(sc.getInputStream())); ) {
String inputLine;
while((inputLine = in.readLine()) != null) {
System.out.println("Received message : " + inputLine + " from " + sc.toString());
}
} catch(IOException e) {
System.out.println("Error : " + e.getMessage());
}
}
}
Когда я запускаю сервер, а затем клиента, я вижу, что он работает нормально, но когда я жестоко останавливаю сервер до конца счетчика на стороне клиента, я не вижу никаких исключений на стороне клиента, и это продолжается например, если сервер все еще там. Я хотел бы поднять исключение, когда сервера больше нет.