Problème de connexion entre un client android et un serveur java
bonjour tout le monde;
mon objectif est de : développer une application Android de chat entre plusieurs utilisateurs.
chaque client saisie son login dans une activité qui le dirige vers une deuxième où elle saisie son message, le valide et le serveur lui affiche son login suivie de son message dans une TextView.
PROBLEME: pas de connexion au serveur java déja lancé sur Mon PC suivi d'une adaptation des ports serveur/client.
Voici mon 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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| package com.ma.emset.clientchat;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.EditText;
import android.widget.ScrollView;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.URL;
public class ChatActv extends AppCompatActivity {
private TextView chat;
private EditText entry;
private ScrollView scroll;
private String chatLog = "";
private String login;
private PrintWriter ecr=new PrintWriter(System.out,true);//flux pour ecrire
private BufferedReader lir=new BufferedReader(new InputStreamReader(System.in));
private void displayMessage(String message) {
// On ajoute ce message a l'ensemble du chat
chatLog += message;
// On affiche le chat
chat.setText(chatLog);
// On scrolle en bas pour visualiser le dernier message
// scroll.fullScroll(View.FOCUS_DOWN);
}
public void enter(View v) {
// On recupére le texte entre par l'utilisateur
String text = entry.getText().toString();
// S'il n'est pas vide
if (!text.isEmpty()) {
//On ajoute le login de l'utilisateur avant et un saut de ligne apres
String message = login + ": " + text + "\n";
// On affiche le message
displayMessage(message);
// On nettoie la zone de texte d'entrée
entry.setText("");
}
}
public void logout(View v){finish();}
//nouveau thread
private class StartNetwork extends AsyncTask<Void, Void, Boolean>{
Socket sok=null;String ip="127.0.0.1";
String nomserveur="Hp-PC";int port=1111;boolean b;
@Override
protected Boolean doInBackground(Void...v){
try{ sok=new Socket(ip,port);
if(sok!=null) b=true; else b=false;
}catch(IOException e){e.printStackTrace();}
return b; }
@Override
protected void onPostExecute(Boolean b){
if(b) displayMessage("connecté au serveur\n");
else displayMessage("pas de connexion\n"); }
}
protected void onStart(){super.onStart(); new StartNetwork().execute();}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat_actv);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
chat = (TextView) findViewById(R.id.chat);
entry = (EditText) findViewById(R.id.entry);
scroll = (ScrollView) findViewById(R.id.scroll);
Intent data = getIntent();
login = data.getStringExtra(ActvP.EXTRA_LOGIN);
ecr.println("mon texte");
}
} |
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
|
import java.io.*;
import java.net.*;
public class serveurtest {
public serveurtest(){System.out.println("bnjr\n");
int b = 0;
ServerSocket socketserver;
Socket socketduserveur ;
BufferedReader in = null ;
PrintWriter out;
String rep;
try {
socketserver = new ServerSocket(1111);
InetAddress address = InetAddress.getLocalHost();
String hostIP = address.getHostAddress() ;
String hostName = address.getHostName();
System.out.println( "Le nom de serveur est : " + hostName + "\nIP: " + hostIP);
System.out.println("Le serveur est à l'écoute du port "+socketserver.getLocalPort());
socketduserveur = socketserver.accept();
System.out.println("client connecté");
in = new BufferedReader(new InputStreamReader(socketduserveur.getInputStream()));
out = new PrintWriter(socketduserveur.getOutputStream());
out.println("TESTTTT");
out.flush();
} catch (Exception e) {
e.printStackTrace();
System.out.println("erreur 1");
}
}} |
Cà m'affiche toujours pas de connexion. AIDEZ moi SVP; Merci