Home / Programmazione / Java / Controllare la connessione in Java
Mattepuffo

Controllare la connessione in Java

Controllare la connessione in Java

Oggi vediamo un modo per controllare che sia disponibile la connessione a internet tramite Java.

Parliamo ovviamente di Java per desktop, non per mobile.

Al contrario della versione per Android, la versione classica di Java non ha strumenti di default per questo tipo di controlli.

Sostanzialmente dobbiamo fare una richiesta ad una pagina web e vedere se risponde; per farlo ci sono vari modi ed io ho usato le Socket.

Avevo provato in altri modi, ma mi dava problemi su alcune piattaforme (Linux nello specifico).

Questa la classe con un unico metodo:

public class CheckConnection {

    public static boolean check() throws IOException {
        String site = "www.google.it";
        try (Socket socket = new Socket()) {
            InetSocketAddress addr = new InetSocketAddress(site, 80);
            socket.connect(addr, 3000);
            return socket.isConnected();
        }
    }

}

L'oggetto InetSocketAddress richiede due parametri: l'host (anche sotto di forma di IP) e la porta.

Facendo un test generico possiamo dargli Google e la classica 80.

State attenti all'indirizzo: con Linux ho avuto problemi con l'indirizzo completo di http://, così invece nessun problema su nessun sistema.

Il metodo isConnetced ritorna lo stato di connessione della Socket.

A questo punto non ci rimane altro che controllare cosa restituisce per vedere se c'è una connessione attiva.

Ciao!