
package mx.edu.ulsa.cib4132005.redes;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import mx.edu.ulsa.cib4132005.graficos.VentanaInicial;


public class ClienteSimple extends VentanaInicial {
	private JTextField jtfMensaje, jtfRemoto;
	public final void dibujar() {
		Container ct = super.getContainer();
		ct.setLayout(new GridLayout(3,3));
		this.jtfRemoto= new JTextField(10);
		this.jtfMensaje= new JTextField(10);
		JButton jbEnviar = new JButton("Enviar...");
		jbEnviar.addActionListener(new HandlerEnviar());
		ct.add(new JLabel("Servidor Remoto"));
		ct.add(this.jtfRemoto);
		ct.add(new JLabel("Mensaje"));
		ct.add(this.jtfMensaje);
		ct.add(jbEnviar);
	}
	public final static int PUERTO=9001;
	private void cliente(String remoto,String mensaje){
		try {
			Socket sock = new Socket(remoto,PUERTO);
			OutputStream salida = sock.getOutputStream();
			PrintWriter writer = new PrintWriter(
					new OutputStreamWriter(salida));
			writer.println(mensaje);
			writer.flush();
			InputStream entrada = sock.getInputStream();
			BufferedReader reader = new BufferedReader(
				new InputStreamReader(entrada));
			String resultado = reader.readLine();
			super.imprimir(resultado); super.imprimirnl();
			writer.close();salida.close();
			reader.close(); entrada.close();
			sock.close();
		} catch (UnknownHostException ex){
			super.imprimir(ex.getMessage());
		} catch (IOException ex){
			super.imprimir(ex.getMessage());
		}
	}
	private class HandlerEnviar implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			String remoto = jtfRemoto.getText();
			String mensaje= jtfMensaje.getText();
			cliente(remoto,mensaje);
		}
	}
	public static void main(String[] args) {
		new ClienteSimple();
	}
}
