Prueba Servidor Java
Enviado por Darlene12 • 2 de Diciembre de 2012 • 1.215 Palabras (5 Páginas) • 467 Visitas
// Establece un servidor que recibe una conexión de un cliente, envía
// una cadena al cliente y cierra la conexión.
import java.io.EOFException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Servidor extends JFrame
{
private JTextField campoIntroducir; // recibe como entrada un mensaje del usuario
private JTextArea areaPantalla; // muestra información al usuario
private ObjectOutputStream salida; // ?ujo de salida hacia el cliente
private ObjectInputStream entrada; // ?ujo de entrada del cliente
private ServerSocket servidor; // socket servidor
private Socket conexion; // conexión al cliente
private int contador = 1; // contador del número de conexiones
public static void main (String args [])
{ System.out.println("Bienvenido a la programacion Java");
}
// establece la GUI
public Servidor()
{
super( "Servidor" );
campoIntroducir = new JTextField(); // crea objeto campoIntroducir
campoIntroducir.setEditable( false );
campoIntroducir.addActionListener(
new ActionListener()
{
// envía un mensaje al cliente
public void actionPerformed( ActionEvent evento )
{
enviarDatos( evento.getActionCommand() );
campoIntroducir.setText( "" );
} // ?n del método actionPerformed
} // ?n de la clase interna anónima
); // ?n de la llamada a addActionListener
add( campoIntroducir, BorderLayout.NORTH );
areaPantalla = new JTextArea(); // crea objeto areaPantalla
add( new JScrollPane( areaPantalla ), BorderLayout.CENTER );
setSize( 300, 150 ); // establece el tamaño de la ventana
setVisible( true ); // muestra la ventana
} // ?n del constructor de Servidor
// establece y ejecuta el servidor
public void ejecutarServidor()
{
try // establece el servidor para que reciba conexiones; procesa las conexiones
{
servidor = new ServerSocket( 12345, 100 ); // crea objeto ServerSocket
while ( true )
{
try
{
esperarConexion(); // espera una conexión
obtenerFlujos(); // obtiene los ?ujos de entrada y salida
procesarConexion(); // procesa la conexión
} // ?n de try
catch ( EOFException excepcionEOF )
{
mostrarMensaje( "\nServidor termino la conexion" );
} // ?n de catch
?nally
{
cerrarConexion(); // cierra la conexión
contador++;
} // ?n de ?nally
} // ?n de while
} // ?n de try
catch ( IOException exepcionES )
{
exepcionES.printStackTrace();
} // ?n de catch
} // ?n del método ejecutarServidor
// espera a que llegue una conexión, después muestra información sobre ésta
private void esperarConexion() throws IOException
{
mostrarMensaje( "Esperando una conexion\n" );
conexion = servidor.accept(); // permite al servidor aceptar la conexión
mostrarMensaje( "Conexion " + contador + " recibida de: " +
conexion.getInetAddress().getHostName() );
} // ?n del método esperarConexion
// obtiene ?ujos para enviar y recibir datos
private void obtenerFlujos() throws IOException
{
// establece el ?ujo de salida para los objetos
salida = new ObjectOutputStream( conexion.getOutputStream()
...