Problem application client/serveur avec interface graphique de cote client en mo

motamo Messages postés 2 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 11 mai 2011 - 8 mai 2011 à 19:32
motamo Messages postés 2 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 11 mai 2011 - 11 mai 2011 à 13:05
salut,
Il s’agit d’écrire une application Client/Serveur en mode TCP/IP ou :
1) L’application client se présente sous forme d’une interface graphique comme il est indiqué au dessus :
Quand l’utilisateur saisit un nom de fichier (texte) et appuie sur le boutton « charger » le contenu du fichier est lu et affiche dans la zone d’affichage libellée « contenu ».
Quand l’utilisateur appuie sur le bouton « décoder » le contenu du fichier est envoyé au serveur nommé « décodeur » (qui attend au port 2007) pour décodage . ce meme fichier est reçu (décoder) et affiché par la suite dans la zone d’affichage libellée « résultat ».
2) Dans l’application serveur, ce dernier reste en attente d’une connexion client sur le port 2007. Il traite les clients séquentiellement de la manière suivante :
Il effectue le décodage au fur et à mesure de ces lignes et les renvoie au client en cours de traitement.
Le décodage se fait comme suit :
Alphabet codé : NOPQRSTUVWXYZABCDEFGHIJKLM
Alphabet original :ABCDEFGHIJKLMNOPQRSTUVWXYZ
======================================================================================
Mon probleme est comment affiché la reponse du serveur dans une TextArea de coté client.
mon code est comme suite:

================================classe client==================================
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.net.*;
public class Client extends Frame {
Client(){
setTitle("service du décodage");
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();
Label l=new Label("Nom de fichier");
TextField tfn=new TextField(10);
TextArea ta1=new TextArea(10,30);
TextArea ta2=new TextArea(10,30);
Button bc=new Button("charger");
Button bd=new Button("décoder");
p1.add(l);
p1.add(tfn);
p2.add(bc);
p2.add(bd);
p3.add(ta1);
p3.add(ta2);
add(p1,"North");
add(p3,"South");
add(p2,"Center");
pack();
setVisible(true);
bc.addActionListener(new Ecouteur500(tfn,ta1));
bd.addActionListener(new Ecouteur501(ta1,ta2));
this.addWindowListener(new Ecouteur502());

}
public static void main(String[]args){
Client c=new Client();
}
}
=========================== classe ecouteur500==================================
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Ecouteur500 implements ActionListener {
TextField tfn;
TextArea ta1;
Ecouteur500(TextField tfn,TextArea ta1){
this.tfn=tfn;
this.ta1=ta1;
}
public void actionPerformed(ActionEvent e){
Button b=(Button)e.getSource();
if(b.getLabel().equals("charger")){
try {
BufferedReader fin=new BufferedReader(new FileReader(tfn.getText()));
String line;
ta1.setText(null);
while((line=fin.readLine())!=null){
ta1.append(line+"\n");
}
fin.close();
}catch(IOException e1){
System.out.println("errure E/S");
}
}

}
}

========================== classe ecouteur501=====================================
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;


public class Ecouteur501 implements ActionListener {
TextArea ta1;
TextArea ta2;
Ecouteur501(TextArea ta1,TextArea ta2){
this.ta1=ta1;
this.ta2=ta2;
}
public void actionPerformed(ActionEvent e){
Button b=(Button)e.getSource();
if(b.getLabel().equals("décoder")){
try{
//String texte=ta1.getText();
//StringTokenizer st=new StringTokenizer(texte,"\n");
Socket sc=new Socket(InetAddress.getLocalHost(),8000);
BufferedReader infromser=new BufferedReader(new InputStreamReader(sc.getInputStream()));
PrintWriter outtoser=new PrintWriter(new OutputStreamWriter(sc.getOutputStream()));
FileInputStream mess = new FileInputStream("E:\\source.txt") ;

String ligne="";
String ligne2="";
/*while((st.hasMoreTokens())){
sout.println(st.nextToken());
}
sout.flush();
sout.println("#*#");
sout.flush();
sc.close();
String line;
ta2.setText(null);
while(true){
line=sin.readLine();
if(line.trim().equals("#*#")){
sout.println("#*#");
sout.flush();
sc.close();
System.exit(0);
}**/
int taille=mess.available();
outtoser.write(taille);
for(int i=0;i<taille;i++){
int b10=mess.read();
outtoser.write(b10);
}
ta2.append(ligne2+"\n");

}catch(IOException e2){
System.out.println("erreur E/S");
}
}
}
}
================================= classe ecouteur502================================
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class Ecouteur502 extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(-1);
}
}



====================================== classe serveur=============================
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.net.*;
public class Serveur {
Serveur(){
char[]t1={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char[]t2={'N','O','P','Q','R','S','T','U','V','W','X','Z','A','B','C','D','E','F','G','H','I','J','K','L','M'};

try{
ServerSocket ss=new ServerSocket(8000);
Socket sc=ss.accept();
BufferedReader br=new BufferedReader(new InputStreamReader(sc.getInputStream()));
PrintWriter pw= new PrintWriter(new OutputStreamWriter(sc.getOutputStream()));
String line="";
String nline="";

while(!(line=br.readLine()).equals("#*#")){
for(int i=0;i<line.length();i++){
int j;
for(j=0;(j<26);j++){
if(line.charAt(i)==t2[j]){
nline=nline+t1[j];
}else
nline=nline+line.charAt(i);
}
}
pw.println(nline);
pw.flush();
}
}catch(IOException e3){
System.out.println("erreur");
}
}
public static void main(String[]args){
Serveur s=new Serveur();
}
}
==================================================================================

merci de votre aide

1 réponse

motamo Messages postés 2 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 11 mai 2011
11 mai 2011 à 13:05
No one is here!!!?
0
Rejoignez-nous