Lo primero dar las gracias a cristal lab, llevo años entrando aquí de vez en cuando para mirar algunas cosas pero este es mi primer post.
Lo del servidor java para un cliente flash me interesa muchisimo dada la rapidez que tiene un servidor de este tipo para trabajar con flash.
Vamos a ver, el post anterior el link que da esta obsoleto ya, la pagina parece caida, afortunadamente, yo llevo un tiempo ya luchando y guardé toda la página, a continuación pego el código del servidor java, cliente flash y cliente java que en ese post se daba.
Además encontré este link que es el proyecto fin de carrera de unos señores que puede sernos útil. En él, no esta todo el código desafortunadamente, pero si que explican como lo han hecho, programas que han usado, hacen un estudio de mercado comparando los diversos servidores existentes (unit, orégano Server, flash Server… etc). El link es:
https://upcommons.upc.edu/pfc/bitstream/2099.1/3703/2/35773-1.pdf
Solo deciros que yo he conseguido hacer que funcione mas o menos el código que viene a continuación para el cliente java pero los errores me los da en el servidor java y son:
JLista listanodo = new JLista(servidorpadre);
listanodo.crearjnodo(socketcliente);
ListaClientes listaclientes = new ListaClientes();
Si a alguien le interesa el tema entre todos podríamos hacer que funcione todo esto ya que parece que tiene potencial. Crear un Chat que funcione rápido esta bien porque también abre las puertas a la creación de un juego multiusuario en flash etc.
El cliente flash no funciona en absoluto, supongo que es xq falta la interfaz grafica, no lo se… si pardocorp pudiera ayudarnos bien, si no a ver que hacemos entre todos. Un saludo, ahí va el código del servidor java, cliente flash y cliente java, un saludo gente!
JServidor:
/**
* @(#)JServidor.java
*
* JServidor application
*
* @author Ronald Lugo
* @author Edwin Pardo
* @web
www.bonnzai.com www.bandicut.net * @version 1.00 2008/3/8
* @licencia GNU/GPL
http://www.viti.es/gnu/licenses/gpl.html */
import java.io.*; // libreria para clases PrintStream, PrintWriter, BufferedReader
import java.net.*; // libreria para clases ServerSocket, Socket
import java.awt.event.*; // libreria para el manejo de eventos
import java.awt.*; // libreria para el manejo de elementos de interfaz
import javax.swing.*; // libreria para el manejo de mejores interfaces graficas
import javax.swing.UIManager.LookAndFeelInfo; // complemento a la libreria swing
public class JServidor extends JFrame
{
//JLista listanodo; // objeto tipo clase ListaNodos
JPanel contentservidor; // panel(ventana) servidor
JLabel lbltitulo = new JLabel(); // label titulo
JScrollPane scrollservidor = new JScrollPane(); // scroll para mensajes
JTextArea ctxtservidor = new JTextArea(); // caja de texto area donde aparecen todos los mensajes
JButton btniniciar = new JButton(); // boton parar servidor
JButton btnsalir = new JButton(); // boton parar servidor
JChat nuevojchat;
public JServidor()
{
try
{
iniciarservidor();
/*
System.out.println("Iniciando Servidor Java");
socketservidor = new ServerSocket(8850); // socketserv : atributo de la clase JServidor de tipo ServerSocket
socketcliente = null; // socketcliente : atributo de la clase JServidor de tipo Socket
*/
//iniciarescucha();
}
catch(Exception e)
{
System.out.println("Error al inicializar el socket servidor");
ctxtservidor.setText(ctxtservidor.getText() + "Error al inicializar el socket servidor\n");
}
} // FIN constructor JServidor
public void iniciarservidor()
{
Color colorfondo = Color.black;
Color colortitulo = Color.white;
Color colorchat = Color.white;
contentservidor = (JPanel) this.getContentPane();
contentservidor.setLayout(null);
contentservidor.setBackground(colorfondo);
this.setSize(new Dimension(600, 300));
this.setTitle("CHAT SOCKETS JAVA FLASH - Servidor");
lbltitulo.setFont(new Font("SansSerif",1, 15));
lbltitulo.setText("Servidor Chat Socket Java Flash");
lbltitulo.setForeground(colortitulo);
lbltitulo.setBounds(new Rectangle(10, 10, 300, 30)); // (x,y,ancho,alto)
scrollservidor.setBounds(new Rectangle(10, 90, 570, 150));
scrollservidor.setBackground(colorchat);
scrollservidor.getViewport().add(ctxtservidor, null);
scrollservidor.setVisible(false);
scrollservidor.setAutoscrolls(true);
ctxtservidor.setBackground(colorchat);
ctxtservidor.setEditable(false);
ctxtservidor.setVisible(false);
btniniciar.setText("Iniciar");
btniniciar.setBounds(new Rectangle(10, 50, 80, 20));
btniniciar.setEnabled(true);
btniniciar.setVisible(true);
btnsalir.setText("Salir");
btnsalir.setBounds(new Rectangle(100, 50, 80, 20));
btnsalir.setEnabled(false);
btnsalir.setVisible(true);
contentservidor.add(lbltitulo, null); //adiciona los objetos al panel
contentservidor.add(btniniciar, null); //adiciona los objetos al panel
contentservidor.add(btnsalir, null); //adiciona los objetos al panel
contentservidor.add(scrollservidor, null); //adiciona los objetos al panel
btniniciar.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
btniniciar_actionPerformed(e);
}
});
btnsalir.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
btnsalir_actionPerformed(e);
}
});
} // FIN iniciarservidor
public void btniniciar_actionPerformed(ActionEvent e)
{
btniniciar.setEnabled(false);
btnsalir.setEnabled(true);
scrollservidor.setVisible(true);
ctxtservidor.setVisible(true);
try
{
//JChat nuevojchat = new JChat();
nuevojchat = new JChat(this);
nuevojchat.start();
}
catch(Exception e2)
{
}
//iniciarescucha();
} // FIN btniniciar_actionPerformed
public void btnsalir_actionPerformed(ActionEvent e)
{
ctxtservidor.setText(ctxtservidor.getText() + "El servidor ha sido deshabilitado\n");
System.out.println("El servidor ha sido deshabilitado");
nuevojchat.stop();
System.exit(0);
} // FIN btniniciar_actionPerformed
class JChat extends Thread
{
private ServerSocket socketservidor; // socket servidor
private Socket socketcliente; // socket de solicitud del cliente
JServidor servidorpadre;
public JChat(JServidor serv) throws IOException
{
servidorpadre = serv;
} // FIN constructor JHilo
public void run()
{
try
{
ctxtservidor.setText(ctxtservidor.getText() + "Iniciando Servidor Java\n");
System.out.println("Iniciando Servidor Java");
socketservidor = new ServerSocket(8850); // socketserv : atributo de la clase JServidor de tipo ServerSocket
socketcliente = null; // socketcliente : atributo de la clase JServidor de tipo Socket
iniciarescucha();
}
catch (Exception e)
{
//System.out.println("no es posible leer lo que el cliente envia");
}
finally
{
ctxtservidor.setText(ctxtservidor.getText() + "El servidor está finalizando\n");
System.out.println("El servidor está finalizando");
}
}
public void iniciarescucha()
{
ctxtservidor.setText(ctxtservidor.getText() + "Servidor Java inicializado ... esperando conexiones\n");
System.out.println("Servidor Java inicializado ... esperando conexiones");
JLista listanodo = new JLista(servidorpadre);
while(true) // inicio de proceso de espera de clientes
{
try
{
socketcliente = socketservidor.accept(); // acepta socket cliente
ctxtservidor.setText(ctxtservidor.getText() + "Ingresa: " + socketcliente + "\n");
System.out.println("Ingresa: " + socketcliente);
listanodo.crearjnodo(socketcliente);
}
catch(Exception e)
{
ctxtservidor.setText(ctxtservidor.getText() + "No se pudo atender una solicitud del cliente\n");
System.out.println("No se pudo atender una solicitud del cliente");
}
} // FIN ciclo espera
} // FIN iniciarescucha
}
public static void main(String[] args) throws IOException, ConnectException // Exception necesario para socket
{
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try
{
JServidor servidor = new JServidor(); // Instancia objeto servidor de tipo clase JServidor
ListaClientes listaclientes = new ListaClientes();
Dimension tamanopantalla = Toolkit.getDefaultToolkit().getScreenSize();
Dimension servidortamano = servidor.getSize();
if (servidortamano.height > tamanopantalla.height)
{
servidortamano.height = tamanopantalla.height;
}
if (servidortamano.width > tamanopantalla.width)
{
servidortamano.width = tamanopantalla.width;
}
servidor.setLocation((tamanopantalla.width - servidortamano.width) / 2,(tamanopantalla.height - servidortamano.height) / 2);
servidor.setVisible(true);
}
catch(Exception e)
{
System.out.println("La instancia servidor no pudo ser inicializada");
}
} // FIN main
} // FIN JServidor
Jcliente Flash:
/**
* @(#)JServidor.java
*
* JServidor application
*
* @author Ronald Lugo
* @author Edwin Pardo
* @web
www.bonnzai.com www.bandicut.net * @version 1.00 2008/3/8
* @licencia GNU/GPL
http://www.viti.es/gnu/licenses/gpl.html */
//stop();
mySocket = new XMLSocket();
mySocket.onConnect = function(success)
{
if (success)
{
msgArea.htmlText += "Conexión con <b>JServer

</b> establecida!";
stop();
}
else
{
//msgArea.htmlText += "No se pudo conectar <b>JServer

</b><br>Es posible que no se haya ininiciado aún ";
gotoAndPlay(31);
stop();
}
;
}
mySocket.onClose = function()
{
msgArea.htmlText += "<b>Server connection lost</b>"
}
XMLSocket.prototype.onData = function(msg)
{
msgArea.htmlText += msg;
}
mySocket.connect("192.168.0.35", 8850)
//mySocket.send("CSJF_usuario:chat" + "\n");
//--- Handle button click --------------------------------------
function sendMsg()
{
if (inputMsg.htmlText != "")
{
mySocket.send(inputMsg.htmlText + "\n");
//inputMsg.htmlText= "";
}
}
//trace("hola");
si.onPress = function ()
{
if (login.text != "")
{
//trace ("CSJF_usuario:"+login.text);
mySocket.send("CSJF_usuario:"+login.text+ "\n");
gotoAndPlay(29);
}
}
//onPress = trace("hola");
/*entrar.onPress = function() {
//user.login(nick_txt.text, "", true);
mySocket.send("CSJF_usuario:"+login.text+ "\n");
gotoAndPlay(29);
}*/
Jcliente Java:
/**
* @(#)JServidor.java
*
* JServidor application
*
* @author Ronald Lugo
* @author Edwin Pardo
* @web
www.bonnzai.com www.bandicut.net * @version 1.00 2008/3/8
* @licencia GNU/GPL
http://www.viti.es/gnu/licenses/gpl.html */
import java.io.*; // libreria para clases PrintStream, BufferedReader
import java.net.*; // libreria para clase Socket
import java.awt.event.*; // libreria para el manejo de eventos
import java.awt.*; // libreria para el manejo de elementos de interfaz
import javax.swing.*; // libreria para el manejo de mejores interfaces graficas
import javax.swing.UIManager.LookAndFeelInfo; // complemento a la libreria swing
public class JCliente extends JFrame
{
private Socket socketcliente; // socket de conexion al servidor
private PrintStream clienteenvia; // elemento de solicitud al servidor
BufferedReader clienterecibe; // elemento de recepcion de solicitudes del servidor
String textorecibe; // cadena que guarda los mensajes del servidor
Hiloescucha hilocliente; // objeto tipo Hiloescucha
JPanel contentpane; // panel(ventana) chat
JTextField ctxtlogin = new JTextField(); // caja de texto para el login
JTextField ctxtmensaje = new JTextField(); // caja de texto mensaje
JTextArea ctxtusuarios = new JTextArea(); // caja de texto area donde aparecen los usuarios conectados
JTextArea ctxtchat = new JTextArea(); // caja de texto area donde aparecen todos los mensajes
JLabel lbltitulo = new JLabel(); // label titulo
JLabel lbllogin = new JLabel(); // label login
JScrollPane scrollchat = new JScrollPane(); // scroll para mensajes
JScrollPane scrollusuarios = new JScrollPane(); // scroll para usuarios
JButton btniniciar = new JButton(); // boton aceptar cambio de nick
JButton btnenviar = new JButton(); // boton enviar mensaje
JButton btnsalir = new JButton(); // boton desconectar y salid del chat
public JCliente()
{
try
{
System.out.println("Iniciando Cliente Java");
iniciar_sesion(); // Establece la interface del cliente
socketcliente = new Socket("localhost", 8850); // solicitud de conexion por socket al servidor
clienteenvia = new PrintStream(socketcliente.getOutputStream()); // peticiones al servidor
clienterecibe = new BufferedReader(new InputStreamReader(socketcliente.getInputStream())); // recibe del servidor
hilocliente = new Hiloescucha(this); // creación del hilo de recepción de mensajes
hilocliente.start(); // inicio de recepción de mensajes
}
catch(Exception e) // Si el servidor no ha iniciado
{
ctxtlogin.setEditable(false); // deshabilita edicion caja de texto login
btniniciar.setEnabled(false); // deshabilita clic en boton iniciar
String mensajeerror = "No existe comunicación entre el socket cliente y el servidor. El servidor no está iniciado o no existe comunicacion entre cliente y servidor";
System.out.println(mensajeerror);
JOptionPane.showMessageDialog(null,mensajeerror, "MENSAJE DEL ADMINISTRADOR", JOptionPane.WARNING_MESSAGE); // mensaje de alerta del error
System.exit(0);
}
} // FIN constructor JCliente
private void iniciar_sesion() throws Exception
{
// Colores del chat
Color colorfondo = Color.black;
Color colorchat = Color.white;
Color colorusuarios = Color.white;
Color colormensaje = Color.white;
Color colortitulo = Color.white;
Color colorlogin = Color.white;
Color colorfondocajalogin = Color.white;
Color colorfuentecajalogin = Color.black;
contentpane = (JPanel) this.getContentPane(); // referencia al panel actual
contentpane.setLayout(null); // limpieza del panel
contentpane.setBackground(colorfondo); // fondo del panel
this.setSize(new Dimension(700, 500)); // tamaño del panel
this.setTitle("CHAT SOCKETS JAVA FLASH"); // titulo del panel
lbltitulo.setFont(new Font("SansSerif",1, 20)); // formato de letra del título del chat
lbltitulo.setText("Chat Socket Java Flash"); // titulo del chat
lbltitulo.setForeground(colortitulo); // color de letra del titulo
lbltitulo.setBounds(new Rectangle(227, 5, 274, 33)); // (x,y,ancho,alto)
// LOGIN //
lbllogin.setFont(new Font("SansSerif",1, 15));
lbllogin.setText("usuario:");
lbllogin.setForeground(colorlogin);
lbllogin.setBounds(new Rectangle(230, 100, 60, 20)); // (x,y,ancho,alto)
ctxtlogin.setBounds(new Rectangle(300, 100, 100, 20));// (x,y,ancho,alto)
ctxtlogin.setFont(new java.awt.Font("SansSerif",1,15));
ctxtlogin.setBackground(colorfondocajalogin);
ctxtlogin.setForeground(colorfuentecajalogin);
btniniciar.setText("Iniciar");
btniniciar.setBounds(new Rectangle(270, 130, 80, 20));
// FIN LOGIN //
scrollchat.setBounds(new Rectangle(30, 50, 460, 340)); // tamaño del objeto scroll
scrollchat.setBackground(colorchat); //
scrollchat.getViewport().add(ctxtchat, null); // adicion de elementos a la barra de desplazamiento
scrollchat.setVisible(false); // por defecto se oculta la barra de desplazamiento
ctxtchat.setBackground(colorchat); // color de fondo de caja de texto de mensajes
ctxtchat.setEditable(false); // por defecto la caja de mensajes no es modificable
ctxtchat.setVisible(false);
scrollusuarios.setBounds(new Rectangle(500, 50, 150, 340));
scrollusuarios.setBackground(colorusuarios);
scrollusuarios.getViewport().add(ctxtusuarios, null);
scrollusuarios.setVisible(false);
ctxtusuarios.setBackground(colorusuarios);
ctxtusuarios.setEditable(false);
ctxtusuarios.setVisible(false);
ctxtmensaje.setBounds(new Rectangle(30, 420, 460, 30)); //se crean las dimensiones de cada objeto
ctxtmensaje.setBackground(colormensaje);// se especifica el color del objeto
ctxtmensaje.setEditable(false);// se deshabilita la caja de texto del mensaje hasta que no se logee
ctxtmensaje.setVisible(false);
btnenviar.setText("Enviar");
btnenviar.setBounds(new Rectangle(500, 420, 80, 20));
btnenviar.setEnabled(false);
btnenviar.setVisible(false);
btnsalir.setText("Salir");
btnsalir.setBounds(new Rectangle(600, 420, 80, 20));
btnsalir.setEnabled(true);
btnsalir.setVisible(true);
// adicion de objetos al panel
contentpane.add(lbltitulo, null); //adiciona los objetos al panel
contentpane.add(lbllogin, null); //adiciona los objetos al panel
contentpane.add(ctxtlogin, null); //adiciona los objetos al panel
contentpane.add(btniniciar, null); //adiciona los objetos al panel
contentpane.add(scrollchat, null); //adiciona los objetos al panel
contentpane.add(scrollusuarios, null); //adiciona los objetos al panel
contentpane.add(ctxtmensaje, null); //adiciona los objetos al panel
contentpane.add(btnenviar, null); //adiciona los objetos al panel
contentpane.add(btnsalir, null); //adiciona los objetos al panel
//
// accion de escucha sobre la caja login
ctxtlogin.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ctxtlogin_actionPerformed(e);
}
});
// FIN ctxtlogin.addActionListener
// accion de escucha sobre el botón login
btniniciar.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
btniniciar_actionPerformed(e);
}
});
// FIN btniniciar.addActionListener
// accion de escucha sobre la caja de escritura de mensajes
ctxtmensaje.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ctxtmensaje_actionPerformed(e);
}
});
// FIN ctxtmensaje.addActionListener
// lectura permanente es escritura en el teclado para validar que no escriba un usuario con mas de 10 digitos
ctxtlogin.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
char caracter = e.getKeyChar();
String texto = ctxtlogin.getText();
// Verificar si existen más de 10 caracteres
if(texto.length() >= 10)
{
JOptionPane.showMessageDialog(null,"El usuario no puede tener más de 10 dígitos", "MENSAJE DEL ADMINISTRADOR", JOptionPane.WARNING_MESSAGE);
e.consume();
}
// e.consume(); // ignorar el evento de teclado
}
}); // FIN ctxtlogin.addKeyListener
// acción de escucha en el botón de enviar mensaje
btnenviar.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
btnenviar_actionPerformed(e);
}
}); // FIN btnenviar.addActionListener
// acción de escucha en el botón salir
btnsalir.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
btnsalir_actionPerformed(e);
}
}); // FIN btnsalir.addActionListener
} // FIN iniciar_sesion
// evento al oprimir el botón de login
public void btniniciar_actionPerformed(ActionEvent e)
{
String login = ctxtlogin.getText(); // login ingresado por el usuario
if(login.length() == 0 )
{
ctxtlogin.requestFocus();
JOptionPane.showMessageDialog(null,"Debe digitar un nombre de usuario.", "MENSAJE DEL ADMINISTRADOR", JOptionPane.WARNING_MESSAGE);
}
else
{
ctxtlogin.setEditable(false); // deshabilita edicion caja de texto login
ctxtlogin.setVisible(false); // deshabilita visibilidad caja de texto login
btniniciar.setEnabled(false); // deshabilita clic en boton iniciar
btniniciar.setVisible(false); // deshabilita visibilidad en boton iniciar
lbllogin.setVisible(false); // deshabilita visibilidad en el texto de usuario
scrollchat.setVisible(true); // se habilita el panel scroll de chat
//ctxtchat.setEditable(true); // se habilita la caja de mensajes
ctxtchat.setVisible(true); // se habilita la visibilidad de la caja de mensajes
scrollusuarios.setVisible(true); // se habilita el panel scroll de chat
//ctxtusuarios.setEditable(true); // se habilita la caja de lista de usuarios
ctxtusuarios.setVisible(true); // se habilita la visibilidad de la caja lista de usuarios
ctxtmensaje.setEditable(true); // se habilita la edición de la caja de envio de mensajes
ctxtmensaje.setVisible(true); // se habilita la visibilidad de la caja envio de mensajes
ctxtmensaje.requestFocus(); // ubica el cursor en la caja de mensaje
btnenviar.setEnabled(true); // se habilita el botòn de enviar
btnenviar.setVisible(true); // se habilita visibilidad para el botón enviar
//btnsalir.setEnabled(true);
//btnsalir.setVisible(true);
clienteenvia.println("CSJF_usuario:" + login);
//clienteenvia.println("CSJF_usuario:ronald");
try
{
if(textorecibe.startsWith("CSJF_ERROR:"))
{
String[] errores = textorecibe.split("CSJF_ERROR:");
System.out.println("ERROR: " + errores[1]);
}
else
{
ctxtchat.setText(textorecibe); // visualizar respuesta del servidor
System.out.println("Servidor: " + textorecibe);
}
}
catch(Exception es)
{
//System.out.println("ERROR: El servidor no responde");
}
}
} // FIN btniniciar_actionPerformed
// al oprimir enter en el logín
void ctxtlogin_actionPerformed(ActionEvent e)
{
btniniciar_actionPerformed(e);
} // FIN ctxtlogin_actionPerformed
// al oprimir enter en la caja de escritura del mensaje
void ctxtmensaje_actionPerformed(ActionEvent e)
{
btnenviar_actionPerformed(e);
} // FIN ctxtmensaje_actionPerformed
// cuando se envíe el mensaje
public void btnenviar_actionPerformed(ActionEvent e)
{
String mensaje = ctxtmensaje.getText(); // mensaje ingresado por el usuario
if(mensaje.length() != 0 )
{
clienteenvia.println(mensaje);
}
ctxtmensaje.requestFocus();
ctxtmensaje.setText("");
} // FIN btnenviar_actionPerformed
// al oprimir el botón salir
public void btnsalir_actionPerformed(ActionEvent e)
{
hilocliente.stop();
System.exit(0);
} // FIN btnsalir_actionPerformed
public static void main(String[] args) throws IOException, ConnectException // Exception necesario para socket
{
// especificaciones iniciales de la interfaz del cliente
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try
{
JCliente cliente = new JCliente(); // Instancia objeto cliente de tipo clase JCliente
Dimension tamanopantalla = Toolkit.getDefaultToolkit().getScreenSize();
Dimension clientetamano = cliente.getSize();
if (clientetamano.height > tamanopantalla.height)
{
clientetamano.height = tamanopantalla.height;
}
if (clientetamano.width > tamanopantalla.width)
{
clientetamano.width = tamanopantalla.width;
}
cliente.setLocation((tamanopantalla.width - clientetamano.width) / 2,(tamanopantalla.height - clientetamano.height) / 2);
cliente.setVisible(true);
}
catch(Exception e)
{
System.out.println("La instancia cliente no pudo ser inicializada");
}
} // FIN main
} // FIN JCliente
// clase encargada de leer los datos y enviarlos. Es un hilo
class Hiloescucha extends Thread
{
private JCliente Hiloescucha; // objeto JCliente
public Hiloescucha(JCliente cliente) throws Exception
{
this.Hiloescucha = cliente;
}
public void run()
{
String textorecibido = "";
try
{
while ((textorecibido = Hiloescucha.clienterecibe.readLine())!=null)
{
if(textorecibido.startsWith("CSJF_conectados:")) // si el servidor envio los usuarios conectados
{
String[] mjeconectados = textorecibido.split("CSJF_conectados:");
String[] usuariosconectados = mjeconectados[1].split(",");
Hiloescucha.ctxtusuarios.setText("");
for(int i = 0; i < usuariosconectados.length; i++)
{
Hiloescucha.ctxtusuarios.setText(Hiloescucha.ctxtusuarios.getText() + usuariosconectados[i].toString().trim() + "\n");
}
}
else
if(textorecibido.startsWith("CSJF_ERROR:")) // si el servidor envio un error
{
String[] mjeerror = textorecibido.split("CSJF_ERROR:");
String errorlogin = mjeerror[1].toString();
JOptionPane.showMessageDialog(null,errorlogin, "MENSAJE DEL ADMINISTRADOR", JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
else
{
Hiloescucha.ctxtchat.setText(Hiloescucha.ctxtchat.getText() + textorecibido.trim() + "\n"); //nuevo mensaje
}
}
}
catch(IOException e) // si se interrumpe la comunicación o el servidor se deshabilita
{
System.out.println("La comunicación con el servidor fue interrumpida");
Hiloescucha.ctxtchat.setText(Hiloescucha.ctxtchat.getText() + "El servidor ha sido deshabilitado");
Hiloescucha.ctxtchat.setEditable(false);
Hiloescucha.ctxtchat.disable();
Hiloescucha.ctxtusuarios.setEditable(false);
Hiloescucha.ctxtchat.disable();
Hiloescucha.ctxtmensaje.setEditable(false);
Hiloescucha.ctxtchat.disable();
Hiloescucha.btnenviar.disable();
Hiloescucha.btnsalir.requestFocus();
}
} // FIN run
} // FIN Hiloescucha