Il peut parfois être utile de simuler un timeout lors d’une connexion à un serveur distant.
Pour cela il suffit d’utiliser une adresse IP non routable, comme par exemple l’adresse 10.255.255.1.

Ainsi l’exemple suivant échouera après 30 secondes avec une exception de type java.net.SocketTimeoutException (attention, par défaut le timeout est égal à 0, donc infini !) :

try {
  URL url = new URL("http://10.0.0.1");
  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  connection.setConnectTimeout((int) TimeUnit.SECONDS.toMillis(30));
  System.out.println(connection.getResponseMessage());
  connection.disconnect();
} catch (IOException e) {
  e.printStackTrace();
}