Buenas a todos, estoy haciendo un chat en java, y necesito saber como hacer para comprobar si dos clientes que se conectan tienen el mismo nick. El chat se compone de 4 clases:
La clase inicioCliente
Código Java:
Ver originalimport com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.JOptionPane;
/**
*
* @author Javier
*/
public class InicioCliente {
/**
* @param args
*/
public static void main
(String[] args
) { // TODO Auto-generated method stub
//Declaro la ip y el puerto a conectar
String ipserver
= "localhost";
//Creo una ventana emergente para pedir el nick, despues se instancia
//la clase cliente y se le pasa la ip, el puerto y el nick
Cliente charla = new Cliente (ipserver,puerto,nick);
}
}
La clase Cliente
Código Java:
Ver originalimport java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
private static final long serialVersionUID = 1L;
//Parte grafica, declaro los elementos a usar
JTextField JTEXTO
= null; //Campo de escribir mensajes JButton JBOTON
= null; //Boton de enviar
JTextArea JTAREA
= null; //TextArea donde aparecen los mensajes JScrollPane scrollpane1
= null; //Panel con scroll que contiene al textArea
//Declaramos ip puerto y nick
//Declaramos el Socket cliente y los canales de escritura y lectura
Socket sock_c
;//Socket cliente //---
//Creamos el constructor de la clase
this.ipserver = ipserver;
this.puerto = puerto;
this.nick = nick;
//Creamos la interfaz
crearInterfaz();
try {
//Se instancian el socket y los buffer
sock_c
= new Socket(this.
ipserver,
Integer.
parseInt(this.
puerto)); canal_w
= new PrintWriter(sock_c.
getOutputStream(),
true);
canal_w.println(nick);
while(true){
String linea
= canal_r.
readLine(); //Si se escribe FIN se termina el programa (Ejercicio 1 de toda esta practica)
if(linea.equals("FIN")){
}else{
//Se añaden los mensajes al textArea
JTAREA.append(linea + "\n");
}
}
// TODO Auto-generated catch block
e.printStackTrace();
// TODO Auto-generated catch block
e.printStackTrace();
// TODO Auto-generated catch block
e.printStackTrace();
}
}//Fin constructor
private void crearInterfaz(){
//Ventana principal
this.addWindowListener(this);
this.setLayout(null);
this.setSize(450, 450);
this.setResizable(false);//Se establece el tamaño de la ventana
this.setTitle("Chat - " + this.nick);
//TextArea
JTAREA
= new JTextArea(); //TextArea donde aparecen los mensajes JTAREA.setBounds(10, 10, 370, 370); //Se da un tamaño
JTAREA.setEditable(false); //Se establece que no se puede editar
this.add(JTAREA);
//Panel con scroll donde esta el textArea donde aparecen los mensajes
scrollpane1.setBounds(10, 10, 370, 370);//Se da un tamaño
scrollpane1.getVerticalScrollBar().setValue(scrollpane1.getVerticalScrollBar().getMaximum());
this.add(scrollpane1);
//Caja de texto donde escribimos el mensaje
JTEXTO.setBounds(10, 390, 260, 20); //Se da un tamaño
this.add(JTEXTO);
//Boton enviar
JBOTON.setBounds(280, 390, 100, 20); //Se da un tamaño
JBOTON.setText("Enviar"); //Se establece el texto del boton
JBOTON.addActionListener(this);
this.add(JBOTON);
this.setVisible(true);
}
@Override
// TODO Auto-generated method stub
}
@Override
// TODO Auto-generated method stub
}
@Override
// TODO Auto-generated method stub
canal_w.println("FIN");
}
@Override
// TODO Auto-generated method stub
}
@Override
// TODO Auto-generated method stub
}
@Override
// TODO Auto-generated method stub
}
@Override
// TODO Auto-generated method stub
}
@Override
// TODO Auto-generated method stub
Object control
= arg0.
getSource();
canal_w.println(JTEXTO.getText());
JTEXTO.setText("");
}
}
}