Socket: Connexion refusée
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:
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:
Socket s = new Socket("localhost", 1111);
Et voici le code Client Android:
Code:
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:
<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.