Código:
su respectivo mainpackage agenteinteligente; /** * * @author Jose */ import java.awt.event.*; import java.net.*; import java.io.*; public class Cliente_Agente extends javax.swing.JFrame implements KeyListener,Runnable{ /** Creates new form Cliente_Agente */ private ObjectOutputStream salida; private ObjectInputStream entrada; private Socket cliente; private int salidaInt; private String mensaje,direccionServer; private boolean conectado; private Thread t; public Cliente_Agente(String Direccion) { initComponents(); this.addKeyListener(this); salidaInt = 0; mensaje = ""; direccionServer = Direccion; conectado = false; t = new Thread(this); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 400, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 300, Short.MAX_VALUE) ); pack(); }// </editor-fold> public void run() { conectarAServidor(direccionServer); obtenerFlujos(); while(true) { System.out.println("Paso"); this.enviarDatos(salidaInt); try{Thread.sleep(2000);}catch(Exception e){} } } public void ejecutarCliente() { try{ //conectarAServidor(direccionServer); //obtenerFlujos(); //procesarConexion(); conectado = true; t.start(); }catch(Exception e){} } private void conectarAServidor(String direccion) { try{ cliente = new Socket(direccion,12345); }catch(Exception e){} System.out.println("Agente Conectado"); } private void obtenerFlujos() { //System.out.println("Se recibieron los flujos"); try{ this.salida = new ObjectOutputStream(cliente.getOutputStream()); this.salida.flush(); this.entrada = new ObjectInputStream(cliente.getInputStream()); System.out.println("Se recibieron los flujos"); } catch(IOException e) { System.out.println("Exception en Obtener flujos"); } } private void procesarConexion() { do{ try{ salidaInt = entrada.readInt(); } //catch(ClassNotFoundException e){System.out.println("ProcesarConexion");} catch(IOException e){System.out.println("ProcesarConexion");} }while(conectado); } private void enviarDatos(int movimiento) { if(true) try{ salida.writeInt(movimiento); salida.flush(); System.out.println(movimiento + " enviado"); } catch(Exception e){System.out.println("Excepcion en la funcion enviarDatos");} else System.out.println("No hay conexion"); } private void closeConnection() { System.out.println("Cerrando Conexion"); try { salida.close(); entrada.close(); cliente.close(); } catch( IOException ioException ) { ioException.printStackTrace(); } System.out.println("\nConexion Cerrada"); } public void keyPressed(KeyEvent ke) { int key = ke.getKeyCode(); switch(key) { case KeyEvent.VK_LEFT: enviarDatos(4); System.out.println("Izquierda"); salidaInt = 4; break; case KeyEvent.VK_RIGHT: enviarDatos(6); System.out.println("derecha"); salidaInt = 6; break; case KeyEvent.VK_UP: enviarDatos(8); System.out.println("arriba"); salidaInt = 8; break; case KeyEvent.VK_DOWN: enviarDatos(2); System.out.println("abajo"); salidaInt = 2; break; case KeyEvent.VK_ESCAPE: System.out.println("Chao!!"); closeConnection(); conectado = false; } } public void keyReleased(KeyEvent ke) {} public void keyTyped(KeyEvent ke){} /** * @param args the command line arguments */ /*public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Cliente_Agente().setVisible(true); } }); }*/ // Variables declaration - do not modify // End of variables declaration }
Código:
public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Cliente_Agente cliente; //cliente = new Cliente_Agente(); if ( args.length == 0 ) cliente = new Cliente_Agente( "127.0.0.1"); else cliente = new Cliente_Agente( args[ 0 ] ); cliente.setVisible(true); cliente.ejecutarCliente(); } }
gracias de antemano