Les comento que cuando se ejecutan, en maquinas aparte los dos ocupan todos los recursos. Les dejo el codigo fuente de el cliente.
Este seria el principal...
Código:
import java.awt.*; public class Login extends Frame { TextField nick,email; int donde; Choice Selector; public Login() { donde=1; resize(250,130); //ComboBox Selector = new Choice(); Selector.addItem("Sala 1"); Selector.addItem("Sala 2"); //______________________________________ Panel p1=new Panel(); Panel p11=new Panel(); p11.setLayout(new GridLayout(3,1)); Panel p12=new Panel(); p12.setLayout(new GridLayout(3,1)); nombre=new TextField(15); nick=new TextField(15); email=new TextField(15); p11.add(new Label("Nick:")); p12.add(nick); p11.add(new Label("Email:")); p12.add(email); p11.add(new Label("Elije una sala:")); p12.add(Selector); p1.add("West",p11); p1.add("East",p12); add("North",p1); Panel p2=new Panel(); Button b=new Button("Conectar"); p2.add(b); add("South",p2); setResizable(false); } public boolean handleEvent( Event evt ) { if (evt.id==evt.WINDOW_EXPOSE) { switch(donde) { case 1:nick.requestFocus();break; case 2:email.requestFocus();break; } return true; } if (evt.id==evt.KEY_PRESS) { if (evt.key==9) { switch(donde) { case 1:nick.requestFocus();donde=2;break; case 2:email.requestFocus();donde=3;break; } return true; } } if( evt.target instanceof Button ) { String boton = ( (Button)evt.target).getLabel(); if( boton.equals( "Conectar" ) ) { hide(); Chat c=new Chat(nick.getText(),email.getText()); } return( true ); } return false; } public static void main( String args[] ) { Login window = new Login(); window.setTitle("Login a OlimarChat"); window.show(); } }
Código:
//Ventana de el Chat import java.awt.*; import java.lang.*; import java.net.*; import java.io.*; public class Chat extends Frame{ String nick,email, sala; Socket sckt; static TextArea en_comun; static List usrs; static String buffer_salida; TextField entrada; Client c; public Chat(String n, String em, String Sal){ nick = n; email= em; sala = Sal; buffer_salida=""; resize(490,340); en_comun = new TextArea(80,40); en_comun.setEditable(false); en_comun.appendText("Mensajes en común"+"/n"); add("West",en_comun); usrs = new List(40,false); add("East",usrs); entrada=new TextField(100); add("South",entrada); setResizable(false); setTitle("OlimarChat"); show(); entrada.requestFocus(); } public boolean handleEvent(Event evt){ if(evt.id==evt.WINDOW_EXPOSE){ entrada.requestFocus(); return true; } if(evt.key==10){ //enter //Lo mando al buffer de salida c.escribir_buffer(entrada.getText()); entrada.setText(""); return true; } return (false); } }
Código:
Pfff i mport java.io.*; import java.net.*; import java.awt.*; import java.lang.*; public class Client extends Chat{ Socket socket; TextArea en_comun; List usrs; String nick,email,sala; public static String buffer_salida; public Client(String ni, String em,TextArea ta, String sa, List l){ super(ni,em,sa); nick=ni; email=em; en_comun=ta; usrs=l; sala=sa; buffer_salida=""; } public synchronized void escribir_buffer(String s){ buffer_salida=s; } public synchronized String leer_buffer(){ return buffer_salida; } public void Client(){ //nos conectamos.. try{ //por si acaso...jejeje socket = new Socket("localhost",25); PrintStream sale = new PrintStream(socket.getOutputStream()); DataInputStream entra = new DataInputStream(socket.getInputStream()); //le digo quien soy sale.println(nick); sale.println(email); boolean conectado= false; String mensaje=""; //espero el mesaje de bienvenida.. mensaje=entra.readLine(); en_comun.appendText(mensaje+"\n"); boolean salir = false; usrs.addItem("a todos"); usrs.select(0); do{ if(!leer_buffer().equals("")){ //mando lo que hay pa' madar if(leer_buffer().equals("/quit")){ salir = true; sale.println("/quit"); } else{ sale.println(usrs.getSelectedItem()+":"+leer_buffer()); escribir_buffer(""); } } if(entra.available()!=0){ mensaje=entra.readLine(); if(!mensaje.equals("")){ if(mensaje.lastIndexOf("***entró")!=-1){ int donde; donde=mensaje.lastIndexOf("con el nick"); usrs.addItem(mensaje.substring(donde+13,mensaje.length())); en_comun.appendText(mensaje+"\n"); } else if(mensaje.lastIndexOf("***Se fué")!=-1){ int i, donde; String quien; quien =mensaje.substring(12); i=1; while(!usrs.getItem(i).equals(quien)){ i++; } usrs.delItem(i); en_comun.appendText(mensaje+"\n"); } else{ en_comun.appendText(mensaje+"\n"); } } } } while(!salir); socket.close(); } catch (IOException e){ System.out.println(e); } } }
Espero no haber abusado de el espacio ....