/*
 * ObjectSocketListner.java
 *
 * Created on 13 March 2003, 10:55
 */

package org.bodington.logging;


import java.io.*;
import java.net.*;
import java.util.logging.*;

/**
 *
 * @author  jrm
 */
public class ObjectSocketListner
{
    
    public static void main( String[] params )
    {
        ServerSocket server=null;
        Socket client;
        ObjectInputStream ois;
        LogRecord lr;
        StreamHandler sh;
        
        try
        {
            server = new ServerSocket(4444);
        }
        catch (IOException e)
        {
            System.out.println("Could not listen on port: 4444");
            System.exit(-1);
        }

        sh = new StreamHandler( System.out, new SimpleFormatter() );
        
        // loop to pick up dropped connections
        while ( true )
        {
            client = null;
            try
            {
                client = server.accept();
            }
            catch (IOException e)
            {
                System.out.println("Accept failed: 4444");
                System.exit(-1);
            }

            try
            {
                ois = new ObjectInputStream( new BufferedInputStream( client.getInputStream(), 1024*64 ) );

                try
                {
                    while ( true )
                    {
                        lr = (LogRecord)ois.readObject();
                        sh.publish( lr );
                    }
                }
                catch ( Exception e )
                {
                    e.printStackTrace();
                    ois.close();
                    client.close();
                }
                
            }
            catch ( Exception e )
            {
                e.printStackTrace();
            }
            
            
        }
    }
    
}
