Bonjour / Bonsoir,

Je suis en train de développer une application Android qui doit échanger des donnés avec un serveur pas l'intermédiaire des sockets. (L'application = Client)

Pour faire des Test, j'ai développer sous NetBeans un client et un serveur qui doivent échanger des messages. Jusque à la, tout marche correctement. Maintenant, je copie le code client de Netbeans dans mon application Android. Je lance le serveur (sous NetBeans) puis, je lance mon application.

Mais à partir de ce moment, lorsque l'application ce lance, elle ne ce connecte pas au serveur et me retourne l'erreur suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 1111): connect failed: ENETUNREACH (Connection refused)

Voici la ligne ou ce trouve l'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Socket s = new Socket("localhost", 1111);

Et voici le code Client Android:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
 
 
public class Load_Activity extends Activity {
 
 
    static InputStream is;
    static OutputStream os;
    static InputStreamReader isr;
    static PrintWriter pw;
    static BufferedReader br;
 
    Socket s;
    static String req = "";
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_load);
 
 
        onConnect();
 
    }
 
    public void onConnect(){
 
        new AsyncTask<Void,Void,String>(){
 
            @Override
            protected String doInBackground(Void... arg0) {
 
                try {
 
                    s = new Socket("localhost", 1111);<br>
                    is = s.getInputStream();
                    isr = new InputStreamReader(is);
                    br = new BufferedReader(isr);
                    os = s.getOutputStream();
                    pw = new PrintWriter(os, true);
 
 
 
                    while(true){
 
                        try {
 
                            req = br.readLine();
 
                            System.out.println("Server: "+req);
 
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
 
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
 
 
                return null;
            }
        }.execute();
 
    }
 
}

Je précise avoir bien ajouter la balise suivant dans mon fichier AndroidManifest:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<uses-permission android:name="android.permission.INTERNET"/>
Pouvez-vous me dire pourquoi cette erreur apparaît sous Android alors que le client sous NetBeans lui ce connecte bien sans retourner d'erreur.

Merci.