web-dev-qa-db-fra.com

java.net.ConnectException: échec de connexion au /192.168.253.3 (port 2468): échec de la connexion: ECONNREFUSED (connexion refusée)

Je souhaite transférer des données entre un PC et un téléphone portable avec wifi, mais le message d'erreur "Java.net.ConnectException: échec de la connexion au /192.168.253.3 (port 2468): échec de la connexion: ECONNREFUSED (connexion refusée)" lorsque je lance mon projet Android.

Voici comment je reçois l'adresse ip wifi:

String ip  = String.format(
                    "%d.%d.%d.%d",
                    (wifiInfo.getIpAddress() & 0xff),
                    (wifiInfo.getIpAddress() >> 8 & 0xff),
                    (wifiInfo.getIpAddress() >> 16 & 0xff),
                    (wifiInfo.getIpAddress() >> 24 & 0xff));

new Recive().execute(ip);

Voici le code pour envoyer un message au PC:

Socket socket = null;
String message = "test\r\n";
protected Void doInBackground(String... urls) {
    try {
        Log.i("ip", urls[0]);
        socket = new Socket(urls[0], 2468);
        toserver = new DataOutputStream(socket.getOutputStream());
        toserver.writeBytes(message);

        toserver.flush();
        toserver.close();
        socket.close();
        return null;
    } catch (Exception e) {
        Log.i("e", e.toString());
        return null;
    }
}

Mais une erreur se produit, 

Java.net.ConnectException: failed to connect to /192.168.253.3 (port 2468): connect failed: ECONNREFUSED (Connection refused)

En outre, j'utilise un téléphone Android pour exécuter l'application.

16
Entel

Une "connexion échouée: ECONNREFUSED (Connexion refusée)" signifie très probablement qu'il n'y a rien d'écoute sur ce port ET cette adresse IP. Les explications possibles incluent:

  • le service est tombé en panne ou n'a pas été démarré,
  • votre client essaie de se connecter avec une adresse IP ou un port incorrect, ou
  • l'accès au serveur est bloqué par un pare-feu qui "refuse" au nom du serveur/service. Ceci est assez improbable étant donné que la pratique normale (de nos jours) est que les pare-feu «bloquent» toutes les tentatives de connexion indésirables.
13
Stephen C

Pourquoi cela aurait pu arriver:

  1. Le serveur n'a pas pu envoyer de réponse: Assurez-vous que le serveur fonctionne correctement avec l'adresse IP et le port mentionnés.
  2. Les connexions SSL sont bloquées: corrigez cela en important des certificats SSL
  3. Cookies non envoyés
  4. Délai de demande: délai de demande de changement 
4
Jaydev

Une erreur courante lors du développement d'une application Android s'exécutant sur un périphérique virtuel sur votre machine dev est d'oublier que le périphérique virtuel n'est pas le même hôte que votre machine dev. Ainsi, si votre serveur est en cours d'exécution sur votre machine dev, vous ne pouvez pas utiliser d'URL " http: // localhost/ ...", car cela cherchera le noeud final du serveur sur le périphérique virtuel et non votre machine dev.

3
Farrukh Najmi

J'avais aussi le même problème. J'ai essayé plusieurs adresses IP, comme mon adresse IP publique et l'adresse IP par défaut de l'hôte local 127.0.0.1 dans Windows et la passerelle par défaut, mais réponse identique . Mais j'oublie de vérifier par 

C:> ipconfig

ipconfig dit clairement quelle est mon adresse IP réelle de l'adaptateur avec lequel je me suis connecté comme si j'étais connecté avec un adaptateur Wifi, mon adresse IP m'indiquera que: 

Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::69fa:9475:431e:fad7%11
   IPv4 Address. . . . . . . . . . . : 192.168.15.92

J'espère que cela t'aidera.

0
Osama Saeed

d'abord, j'ai utilisé le format "localhost: port" et rencontré cette erreur. J'ai ensuite changé l'adresse au format "ip: port" et le problème résolu.

0
user5091911