Maison  >  Article  >  Java  >  Méthodes pour résoudre l'exception d'erreur de délai d'expiration de la connexion réseau Java (ConnectionInterruptedTimeoutErrorExceotion)

Méthodes pour résoudre l'exception d'erreur de délai d'expiration de la connexion réseau Java (ConnectionInterruptedTimeoutErrorExceotion)

王林
王林original
2023-08-18 19:02:111724parcourir

Méthodes pour résoudre lexception derreur de délai dexpiration de la connexion réseau Java (ConnectionInterruptedTimeoutErrorExceotion)

Méthodes pour résoudre l'exception d'erreur de délai d'expiration de la connexion réseau Java (ConnectionInterruptedTimeoutErrorExceotion)

Résumé : Dans la programmation Java, nous rencontrons souvent une exception d'erreur de délai d'expiration de la connexion réseau (ConnectionInterruptedTimeoutErrorExceotion). Ce type d'anomalie est très courant dans les communications réseau et peut causer des problèmes à notre programme. Cet article décrit plusieurs façons de résoudre ce problème et fournit des exemples de code pertinents.

1. Vérifiez si la connexion réseau est normale

Lorsqu'une erreur de délai d'interruption de connexion réseau se produit, vérifiez d'abord si la connexion réseau est normale. Vous pouvez utiliser la commande ping ou tester via Socket en code Java. Voici un exemple de vérification si la connexion réseau est normale via le code Java :

import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;

public class NetworkUtils {
    
    public static boolean isNetworkConnected() {
        try {
            InetAddress ip = InetAddress.getByName("www.google.com");
            Socket socket = new Socket(ip, 80);
            return true;
        } catch (IOException e) {
            return false;
        }
    }
}

Dans l'exemple ci-dessus, nous déterminons si le réseau est normal en essayant d'établir une connexion Socket avec le serveur Google. Si la connexion réussit, cela signifie que la connexion réseau est normale ; si la connexion échoue, cela signifie que la connexion réseau est interrompue ou expire.

2. Définissez le délai d'expiration de la connexion

Si la connexion réseau est normale, mais qu'une erreur de délai d'expiration de la connexion se produit lors de la demande, il est probable que le paramètre de délai d'expiration de la connexion soit déraisonnable. Nous pouvons résoudre ce problème en définissant le délai d'expiration de la connexion. Voici un exemple :

import java.net.URL;
import java.net.HttpURLConnection;

public class ConnectionUtils {
    
    public static void main(String[] args) {
        try {
            URL url = new URL("http://www.example.com");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(5000); // 设置连接超时时间为5秒
            connection.setReadTimeout(5000); // 设置读取超时时间为5秒
            connection.connect();
            // do something with the connection
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Dans l'exemple ci-dessus, nous définissons le délai d'expiration de connexion et le délai d'expiration de lecture à 5 secondes en définissant la méthode setConnectTimeout方法和setReadTimeout.

3. Mécanisme de nouvelle tentative

Une autre façon de résoudre le problème de l'erreur de délai d'attente d'interruption de connexion réseau consiste à utiliser le mécanisme de nouvelle tentative. Lorsqu'une erreur de délai d'interruption de connexion se produit, nous pouvons essayer de nous reconnecter un certain nombre de fois jusqu'à ce que la connexion réussisse ou que le nombre maximum de tentatives soit atteint. Voici un exemple :

import java.net.URL;
import java.net.HttpURLConnection;

public class RetryUtils {
    
    private static final int MAX_RETRY_TIMES = 3;
    
    public static void main(String[] args) {
        int retryTimes = 0;
        boolean success = false;
        
        while (retryTimes < MAX_RETRY_TIMES && !success) {
            try {
                URL url = new URL("http://www.example.com");
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                // do something with the connection
                connection.disconnect();
                success = true;
            } catch (Exception e) {
                e.printStackTrace();
                retryTimes++;
            }
        }
        
        if (!success) {
            System.out.println("Failed to establish connection after " + MAX_RETRY_TIMES + " retries.");
        }
    }
}

Dans l'exemple ci-dessus, nous essayons de rétablir la connexion via une boucle et nous terminons lorsque la connexion est réussie ou que le nombre maximum de tentatives est atteint.

Conclusion :

Dans la programmation réseau Java, il est très courant de rencontrer une exception d'erreur de délai d'attente d'interruption de connexion réseau. Nous pouvons résoudre ce problème en vérifiant si la connexion réseau est normale, en définissant le délai d'expiration de la connexion et le mécanisme de nouvelle tentative, etc. Nous rappelons à chacun de prêter attention à la gestion des exceptions et aux paramètres de délai d'attente raisonnables lors de l'exécution de communications réseau afin d'éviter l'apparition d'erreurs et d'exceptions de délai d'attente d'interruption de connexion réseau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn