All pastes #440302 Raw Edit

Socket

public text v1 · immutable
·published 2007-04-14 22:59 UTC
rendered paste body
//First Class
package interfacesCliente;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

import conexionCliente.ConexionClienteConsulta;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JLabel;
import java.awt.Dimension;

public class InterfazConsulta extends JFrame implements ActionListener
{

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private ConexionClienteConsulta consulta=null;

	private String tarjeta=null;


	private JLabel jlbltarjeta = null;

	private JTextField jtxtcajita = null;


	public InterfazConsulta(String tarjeta)
	{
		super();
		this.tarjeta=tarjeta;
		initialize();
		consulta= new ConexionClienteConsulta(this,"usuario","localhost","2"+tarjeta);
		consulta.iniciarConexion();
		System.out.println("HOla");
	}

	private void initialize()
	{
		this.setSize(378, 309);
		this.setContentPane(getJContentPane());
		this.setTitle("CONSULTAS ON LINE");
		this.setVisible(true);
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
	}

	private JPanel getJContentPane()
	{
		if (jContentPane == null)
		{
			jlbltarjeta = new JLabel();
			jlbltarjeta.setBounds(new Rectangle(15, 30, 190, 25));
			jlbltarjeta.setText("Tarjeta:");
		}
		return jContentPane;
	}


	private JTextField getJtxtcajita()
	{
		if (jtxtcajita == null)
		{
			jtxtcajita = new JTextField();
			jtxtcajita.setBounds(new Rectangle(229, 70, 113, 22));
		}
		return jtxtcajita;
	}

	public void actionPerformed(ActionEvent e)
	{


	}

	public void escribir(String mensaje)
	{
		SwingUtilities.invokeLater(new Escritura(mensaje));
		this.repaint();
		System.out.println(mensaje);
	}
	class Escritura implements Runnable
	{
		private final String mensaje;
		public Escritura(String mensaje)
		{
			this.mensaje=mensaje;
		}
		public void run()
		{
			jtxtcajita.setText(mensaje);
		}

	}
}

//Second Class
package conexionCliente;

import interfacesCliente.InterfazConsulta;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class ConexionClienteConsulta
{
	private Socket conexion=null;
	private DataInputStream entrada=null;
	private DataOutputStream salida=null;

	private static final int PUERTO=2222;

	private InterfazConsulta interfaz=null;
	private String nombreCliente=null;
	private String nombreHost=null;
	private String codTarjeta=null;

	public ConexionClienteConsulta(InterfazConsulta interfaz, String nombreCliente,String nombreHost,String codTarjeta)
	{
		this.interfaz=interfaz;
		this.nombreCliente=nombreCliente;
		this.nombreHost=nombreHost;
		this.codTarjeta=codTarjeta;
	}

	public void iniciarConexion()
	{
		try
		{
				conectar();
				crearFlujos();
				comunicar();
				cerrarConexion();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

	private void conectar()
	{
		try
		{
			conexion = new Socket( nombreHost , PUERTO );
		}
		catch (UnknownHostException e)
		{
			e.printStackTrace();
			System.out.println("Servidor inexistente ...");
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

	private void cerrarConexion()
	{
		try
		{
				entrada.close();
				salida.close();
				conexion.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

	private void comunicar()
	{
		String mensaje=null;
		try
		{
			salida.writeUTF("Comunicación Establecida");
			enviarMensaje(codTarjeta);
			do
			{
				try
				{
					mensaje=entrada.readUTF();
					interfaz.escribir(mensaje);
					System.out.println("Escribiendo "+mensaje);
					interfaz.repaint();
				}
				catch(IOException e)
				{
					mensaje="terminar";
					interfaz.escribir(nombreCliente+" Se Ha Desconectado");
				}
			}
			while(!mensaje.equals("terminar"));
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

	private void crearFlujos()throws IOException
	{
		entrada = new DataInputStream( conexion.getInputStream() );
		salida = new DataOutputStream( conexion.getOutputStream());
	}

	public void enviarMensaje(String mensaje)
	{
		try
		{
			salida.writeUTF(mensaje);
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}