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


Je veux transférer des données entre un PC et un téléphone mobile avec WiFi.

Voici comment j'obtiens 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);

Ceci est le code sur l'envoi d'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: échec de la connexion à /192.168.253.3 (port 2468): échec de la connexion: ECONNREFUSED (Connexion refusée)

D'ailleurs, j'utilise un téléphone Android pour exécuter l'application.

Author: 5377037, 2015-01-27

9 answers

Un connect failed: ECONNREFUSED (Connection refused) signifie très probablement qu'il n'y a rien à écouter sur ce port ET cette adresse IP. Les explications possibles incluent:

  • le service s'est écrasé ou n'a pas été (avec succès!) a commencé,
  • votre client essaie de se connecter en utilisant la mauvaise adresse IP ou le mauvais port,
  • votre client essaie de se connecter en utilisant un nom DNS qui se résout à la mauvaise adresse IP, ou
  • l'accès au serveur est bloqué par un pare-feu qui "refuse" au nom du serveur/service. Ce est assez improbable étant donné que la pratique normale (de nos jours) est que les pare-feu "blackhole" toutes les tentatives de connexion indésirables.

Notez que bien que vous ayez une variable de tableau appelée urls, elle ne peut pas contenir de vraies URL. Il n'y a pas de surcharge du constructeur Socket qui prend une URL réelle sous n'importe quelle forme. En effet, si vous avez fourni une URL sous forme de chaîne comme ceci:

 new Socket("http://example.com", 42)

Le résultat serait une exception différente. De même, si vous essayez de vous connecter à une adresse IP adresse sur un réseau que vous ne pouvez pas router (par exemple "un réseau WiFi différent"), alors vous obtiendrez une exception différente; par exemple "hôte introuvable", "pas de route vers l'hôte" ou "pas de route vers le réseau".

 21
Author: Stephen C, 2019-07-17 23:17:49

Une erreur courante lors du développement d'une application Android exécutée sur un périphérique virtuel de votre machine de développement est d'oublier que le périphérique virtuel n'est pas le même hôte que votre machine de développement. Donc, si votre serveur s'exécute sur votre machine de développement, vous ne pouvez pas utiliser un " http://localhost / ..."url car cela recherchera le point de terminaison du serveur sur le périphérique virtuel et non votre machine de développement.

 8
Author: Farrukh Najmi, 2017-05-24 15:33:39

Pourquoi cela a pu se produire:

  1. Le serveur n'a pas pu envoyer de réponse: Assurez-vous que le backend fonctionne correctement à l'adresse IP et au port mentionnés.
  2. Les connexions SSL sont bloquées: Corrigez ce problème en important des certificats SSL

Moins probable:

  1. Les cookies ne sont pas envoyés
  2. Délai d'expiration de la demande: Modifier le délai d'expiration de la demande
 7
Author: Jaydev, 2020-05-08 18:08:37

Je recevais également le même problème que j'ai essayé plusieurs adresses IP comme mon adresse IP publique et l'adresse IP par défaut localhost 127.0.0.1 dans Windows et la passerelle par défaut mais la même réponse. mais j'oublie de vérifier par

C:> ipconfig

Ipconfig proprement dire quelle est mon adresse IP réelle de cet adaptateur avec lequel je me suis connecté comme si j'étais connecté avec l'adaptateur Wifi mon adresse IP me montrera comme:

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 vous aidera.

 1
Author: Osama Saeed, 2017-08-11 22:35:58

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

 0
Author: user5091911, 2017-08-29 07:06:09

J'ai résolu le même problème, j'ai utilisé une connexion réseau via un serveur proxy, lorsque j'ai sélectionné l'option de ne pas utiliser de proxy pour les connexions internes et locales, le problème a disparu

 0
Author: shkolnik 225, 2019-09-22 14:40:42

Vérifiez le nom de la base de données dans un fichier où vous avez établi une connexion.

 0
Author: Siddharth, 2019-11-14 10:06:41

Mon problème a été résolu après avoir désactivé Windows Firewall Defender dans le réseau public car j'étais connecté à ce réseau.

 0
Author: Tanvi Agarwal, 2020-11-29 11:54:17

Vous pouvez covert domaine à l'adresse IP parce que chaque domaine a une adresse IP spécifique, vous allez résoudre ce problème. J'espère que cela va vous aider.

 -5
Author: Anuj Agrawal, 2019-03-27 11:06:45