Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Test connessione non funziona sul Linux

    ciao!
    ho usato questo codice per vedere il pc dal quale si esegue un programma è online:
    codice:
    public class CheckConnection {
    
        public static boolean check() throws IOException {
            String site = "http://www.google.it/";
            try (Socket socket = new Socket()) {
                InetSocketAddress addr = new InetSocketAddress(site, 80);
                socket.connect(addr, 3000);
                return socket.isConnected();
            }
        }
    }
    ieri sul mac in ufficio funzionava.
    oggi su linux no, e la connessione c'è perchè vi scrivo dallo stesso pc.
    non funziona nel senso che mi va in eccezione:
    codice:
        private void createConnection() {
            try {
                if (CheckConnection.check()) {
                    // DO SUTFF
                } else {
                    JOptionPane.showMessageDialog(null, "Nessuna connessione");
                }
            } catch (IOException ex) {
                JOptionPane.showMessageDialog(null, ex.getMessage());
            }
        }
    avete una vaga idea del perchè?

  2. #2
    ciao!

    giusto per cercare di capire, ho provato questo codice qua:
    codice:
            InetAddress[] addresses = InetAddress.getAllByName("www.google.com");
            for (InetAddress address : addresses) {
                if (address.isReachable(3000)) {
                    System.out.printf("%s is reachable%n", address);
                } else {
                    System.out.printf("%s could not be contacted%n", address);
                }
            }
    il risultato è questo:
    codice:
    www.google.com/173.194.35.52 could not be contacted
    www.google.com/173.194.35.50 could not be contacted
    www.google.com/173.194.35.48 could not be contacted
    www.google.com/173.194.35.49 could not be contacted
    www.google.com/173.194.35.51 could not be contacted
    www.google.com/2a00:1450:4002:802:0:0:0:1010 could not be contacted
    la cosa bella è che le operazioni remote le fa, quindi ad internet ci accede.
    poi però se fa un semplice test non riesce a "navigare".

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    giusto per capire cosa fa...che eccezione hai?
    Mi fa strano vedere in java una printf...cmq il tuo indirizzo è questo qui

    codice:
    www.google.com/173.194.35.52
    ?

    i conti non tornano (cioé mi fa strano un indirizzo del genere)

    www.google.com/173.194.35.52

    RTFM Read That F*** Manual!!!

  4. #4
    ciao valia.

    in realtà ho solo cambiato indirizzo levando http:// ed ha funzionato.
    codice:
    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();
            }
        }
    }
    non saprei dare una spiegazione!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ni, la spiegazione c'è : hai messo il protocollo.

    InetSocket (documentazione):

    This class implements an IP Socket Address (IP address + port number) It can also be a pair (hostname + port number), in which case an attempt will be made to resolve the hostname. If resolution fails then the address is said to be unresolved but can still be used on some circumstances like connecting through a proxy.It provides an immutable object used by sockets for binding, connecting, or as returned values.
    The wildcard is a special local IP address. It usually means "any" and can only be used for bind operations.


    e in pratica il problema è che il protocollo non fa parte di un ip address
    RTFM Read That F*** Manual!!!

  6. #6
    ok penso di aver capito.

    più che altro trovavo strano che sul mac funzionasse e su linux no.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ci sarebbe da vedere dove hai eccezione (e che eccezione hai) per capire bene xe l'errore è proprio quello.
    In linea di principio io coi socket utilizzo l'indirizzo (senza il protocollO)
    RTFM Read That F*** Manual!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.