Package network

Source Code of network.NetworkServer

package network;


import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;

import util.Globals;

import msg.Message;

public class NetworkServer extends Network implements Runnable
{
   
    /**
     * Crea la conexion server a fin de escruchar mensajes etrantes
     * @param puerto por el cual entraran los mensajes
     */
    public NetworkServer(int puerto)
    {
        try
        {
            port = puerto;
            serverConn = new ServerSocket(port);  
            message = new Message();
        }
        catch (Exception ex) { System.out.println ("Error en instanciar NetworkServer: " + ex.getMessage()); }
    }

    /**
     * Loop general de la aplicación de escucha de mensajes
     * Queda en espera de mensajes entrantes, luego itera indefinidamente
     */
    @Override
    public synchronized void run()
    {
        while   (true)
        {
            try
            {
                // Escuchar conexiones entrantes
                if (listen())
                {
                    Message newMessage = (Message)receive();
                    if (newMessage == null)
                        return;
               
                    // Atender según correspondan
                    Message.copy(newMessage, message);
                    message.notifyNewMessage();
                }
            }
            catch (Exception e)
            {
                System.out.println("Error en run de NetworkServer: "+e.getMessage());
            }
               
        }
    }
   
    public void restartServer()
    {
      try
      {
        closeServer();
        serverConn = new ServerSocket(port);
      }
      catch (Exception e)
      {
        System.out.println("Error en restartServer():" + e.getMessage());
      }
    }
   
    /**
     * Esperar la recepción de mensajes y setear los buffers correspondientes
     */
    public boolean listen()
    {
        try
        {  
            socket = serverConn.accept();
            toBuffer = new ObjectOutputStream(socket.getOutputStream());
            toBuffer.flush();
            fromBuffer = new ObjectInputStream(socket.getInputStream());
            return true;
        }
        catch (Exception ex)
        {
            System.out.println ("Error en listen de NetworkServer: " + ex.getMessage());
            return false;
        }
    } 
   
  
    /** --- GETTERS Y SETTERS */
   
    public Message getMessage()
    {
        return message;
    }

    public void setMessage(Message message)
    {
        this.message = message;
    }
   
}
TOP

Related Classes of network.NetworkServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.