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 ....
snif...
...si alguien tiene alguna idea con gusto la tendré en cuenta.

