//
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class AppliClient extends Frame implements ActionListener {
public static final int PORT=45678;
Socket s;
PrintStream canalEcriture;
TextField entree;
TextArea visu;
Button envoi,stop;
Panel boutons;
String Nom;
public AppliClient(String n, String host) {
super("client"+ " "+n);
try {
Nom=n;
s=new Socket(host,PORT);
canalEcriture=new PrintStream(s.getOutputStream());
// construction de l'interface graphique
entree=new TextField();
visu=new TextArea();
visu.setEditable(false);
this.setLayout(new BorderLayout());
this.add("North",visu);
this.add("Center",entree);
entree.addActionListener(this);
boutons=new Panel();
envoi=new Button("envoi");
stop =new Button("stop");
boutons.add(envoi);
envoi.addActionListener(this);
boutons.add(stop);
stop.addActionListener(this);
this.add("South",boutons);
this.pack();
this.show();
// la connexion est etablie :
visu.setText("Connexion : "+ s.getInetAddress()+
" port : "+s.getPort());
// lancement du processus accedant en lecture au socket
Ecouteur ecoute=new Ecouteur(s,visu);
} catch (IOException e) {visu.setText(e.toString());}
} // constructeur AppliClient
public void actionPerformed(ActionEvent e) {
if ((e.getSource()==envoi) || (e.getSource()==entree)) {
canalEcriture.println(Nom+">"+entree.getText());
entree.setText("");
}
if (e.getSource()==stop) {
canalEcriture.println(Nom+">FIN");
System.exit(0);
}
} // actionPerformed
public static void main(String[] args) {
Frame f= new AppliClient(args[0],args[1]);
} //main
}