//
import java.io.*;
import java.net.*;
import java.awt.*;


public class appliClient extends Frame{
    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)
    {super("client"+ " "+n);
     try
       {Nom=n;
        s=new Socket("cuisuna.unige.ch",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);
		boutons=new Panel();
		envoi=new Button("envoi");
		stop =new Button("stop");
	    boutons.add(envoi);
	    boutons.add(stop);
		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());}
	} //init
	 
	public boolean action(Event e,Object obj)
	{if ((e.target==entree) || (e.target==envoi))
	   {canalEcriture.println(Nom+">"+entree.getText());
	    entree.setText("");
	    return true;
	   }
	 if (e.target==stop) 
	  {canalEcriture.println(Nom+">FIN");
	   System.exit(0);
	   }	   
	 return false;
	} // action
	
 public static void main(String[] args)
   { Frame f= new appliClient(args[0]);    
   }

}