Client-Serveur

Résolu
SpaceHam Messages postés 78 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 22 octobre 2015 - 6 déc. 2010 à 04:29
SpaceHam Messages postés 78 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 22 octobre 2015 - 7 déc. 2010 à 01:56
Bonjour,

J'essaie de créer un client-serveur simple. Beaucoup d'exemple ont été sortie pour une applicationd de chat multiple. Je me suis bassé la dessus afin de construire ma propre application. En gros j'ai un JTextField pour entrer le message et un JTextArea pour entrer l'information de tous les usagers dont soie-même.

L'application me sort un IOException lorsqu'il arrive sur le .readLine() d'un BufferedReader (new InputStreamReader(s.getInputStream())). En gros j'ai bien spécifier que le texte devrais être pris de mon JTextField mais lorsque je veux l'envoyer seulement et non pas avant mais bon on dirait que ça opère immédiatement dès la première connexion et ainsi je suis déconnecté automatiquement.

Voici mes sources

-------------------------------------------------------------------
Ecouteur.java (arrête a la ligne 'ligne = entree.readLine();'

class Ecouteur extends Thread
{
BufferedReader entree;
private CPrincLC cc = null;

public Ecouteur(Socket s, CPrincLC cont) throws IOException
{
cc = cont;
entree = new BufferedReader (new InputStreamReader(s.getInputStream()));
this.start();
}

public void run()
{
cc.putTextMsg("run()");
String ligne = "";
cc.putTextMsg("ligne : ");
try
{
cc.putTextMsg("try");
while (true)
{
cc.putTextMsg("while(true)");
System.out.println("ligne empty : "+ligne);
System.out.println("entree : "+entree);
//Application cause erreur() sur la ligne suivante.
ligne = entree.readLine();
cc.putTextMsg("while : "+ligne);
if (ligne==null)
break;

cc.putTextMsg("\n"+ligne);
}
}
catch (IOException e)
{
cc.putTextMsg(e.toString());
}
finally
{
cc.putTextMsg("connexion interrompue par le serveur");
}
}
}


-------------------------------------------------------------------
ClientLC.java

public class ClientLC
{
private CPrincLC cc = null;
public PrintStream canalEcriture;
protected String adr = "localhost";
protected static final int PORT = 8803;

public ClientLC(CPrincLC cont)
{
cc = cont;
Socket s=null;
if (adr.length() == 0)
erreur();

try
{
s = new Socket(adr, PORT);
canalEcriture = new PrintStream(s.getOutputStream());
System.out.println("PrintStream pass!");
Ecouteur ecouteur = new Ecouteur(s, cc);
System.out.println("ecouteur create");
} // try
catch (IOException e)
{
System.err.println(e);
}
finally
{
try
{
if (s!=null)
s.close();
}
catch (IOException e2)
{}
}
} // main
public static void erreur()
{
System.err.println("Usage: java Client <hostname>");
System.exit(1);
}
}

-------------------------------------------------------------------

Si quelqu'un aurait une piste ce serait très apprécier....

Merci de prendre un petit 2 min ;)

SpaceHamAgent

1 réponse

SpaceHam Messages postés 78 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 22 octobre 2015
7 déc. 2010 à 01:56
J'ai trouvé une autre façon.. merdi pareil



SpaceHamAgent
3
Rejoignez-nous