CHAT EN ECLIPSE MEDIANTE SOCKETS

Páginas: 7 (1737 palabras) Publicado: 13 de enero de 2015
2014



















CLIENTE - SERVIDOR














TEMA





CHAT EN ECLIPSE MEDIANTE SOCKETS







CLIENTE




Clase PrincipalChat

Esta clase implementa la interfaz grafica para poder mostrar los mensajes entrantes y un JTextField para poder enviarlos. La interfaz contiene un menu para poder salir del programa.package cliente;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.EOFException;
import java.io.IOException;
import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
importjava.util.logging.Level; import java.util.logging.Logger; import javax.swing.*;




//Clase que se encarga de correr los threads de enviar y recibir texto
//y de crear la interfaz gráfica.

public class PrincipalChat extends JFrame{

//Para mostrar mensajes de los usuarios
public JTextField campoTexto;
//Para ingresar mensaje a enviar
public JTextArea areaTexto;
private static ServerSocketservidor;
//Socket para conectarse con el cliente
private static Socket cliente;
//ip a la cual se conecta
private static String ip = "192.168.56.1";


public static PrincipalChat main;

public PrincipalChat(){
//Establece titulo al Frame
super("Cliente");
//crea el campo para texto
campoTexto = new JTextField();
//No permite que sea editable el campo de textocampoTexto.setEditable(false);
//Coloca el campo de texto en la parte superior
add(campoTexto, BorderLayout.NORTH);
//Crear displayArea
areaTexto = new JTextArea();
areaTexto.setEditable(false);
add(new JScrollPane(areaTexto), BorderLayout.CENTER);
//Pone de color cyan al displayArea areaTexto.setBackground(Color.orange);
//pinta naranja la letra en el displayArea areaTexto.setForeground(Color.BLACK);
//pinta todala letra del mensaje a enviar campoTexto.setForeground(Color.BLACK);
//Crea menu Archivo y submenu Salir, ademas agrega el submenu al menu
JMenu menuArchivo = new JMenu("Archivo"); JMenuItem salir = new JMenuItem("Salir");
//Agrega el submenu Salir al menu menuArchivo menuArchivo.add(salir);
//Crea la barra de menus
JMenuBar barra = new JMenuBar();
//Agrega barra de menus a la aplicacionsetJMenuBar(barra);
//agrega menuArchivo a la barra de menus
barra.add(menuArchivo);

//Accion que se realiza cuando se presiona el submenu Salir salir.addActionListener(new ActionListener() {
//clase interna anonima
public void actionPerformed(ActionEvent e) {
//Sale de la aplicacion
System.exit(0);
}
});
//Establecer tamaño a ventana setSize(300, 320);
//Pone visible la ventanasetVisible(true);
}

//Para mostrar texto en displayArea
public void mostrarMensaje(String mensaje) {
areaTexto.append(mensaje + "\n");
}
public void habilitarTexto(boolean editable) {
campoTexto.setEditable(editable);
}


//Clase principal

public static void main(String[] args) {
//Instanciacion de la clase Principalchat
PrincipalChat main = new PrincipalChat();
//Centrar el JFramemain.setLocationRelativeTo(null);
//habilita cerrar la ventana main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Para correr los threads con el puerto 11111
ExecutorService executor = Executors.newCachedThreadPool();

try {
main.mostrarMensaje("Buscando Servidor ...");
cliente = new Socket(InetAddress.getByName(ip), 11111);
//comunicarme con el servidor
main.mostrarMensaje("Conectado a:" +
cliente.getInetAddress().getHostName());
//habilita el texto main.habilitarTexto(true);
//Ejecucion de los Threads
executor.execute(new ThreadRecibe(cliente, main));
executor.execute(new ThreadEnvia(cliente, main));

} catch (IOException ex) { Logger.getLogger(PrincipalChat.class.getName()).log(Level.SEVERE,
null, ex);
} //Fin del catch
finally {
}
executor.shutdown();
}
}...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Chat java con sockets
  • Analisis de sockets mediante una simulación de Omnet++
  • Sockets
  • sockets
  • sockets
  • Sockets
  • Sockets
  • Sockets

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS