/** * Title: GPS Simulator * Copyright: Copyright (c) 2002 * Company: University of Oregon Computer Science Dept. * * @author Jason Prideaux * @version 1.0 * */ package transport; import transport.protocol.*; import controller.*; import java.io.*; import java.net.*; import java.util.*; /* ====================================================================== */ /** This class is used by the controller to receive Messages sent by ipaq * clients. This class mearly passes the messages up to the Controller, * it to deal with. * */ public class SocketReceiver extends Thread { /** The port to listen on. */ private int port; /** The SocketReceiverListener object to pass messages to. */ private SocketReceiverListener controller; /* ===================================================================== */ /** This constructor initializes the Receiver, so that it is ready to begin * listening for messages. * * @param controller The listener to notify. * @param port The port this receiver is listening on. * */ public SocketReceiver(SocketReceiverListener controller, int port){ this.port = port; this.controller = controller; } //Constructor /* ===================================================================== */ /** This method opens a Socket and listens to it forever. When it gets * an incoming message it will pass it up to the Listener, and then * continue to listen. * */ public void run(){ try{ // Get socket to listen to. ServerSocket listen = new ServerSocket(port); while(true){ try{ // Get the Socket for client connecting to us. Socket s; s = listen.accept(); // Get the incoming message. BufferedInputStream bufin = new BufferedInputStream(s.getInputStream()); ObjectInputStream objin = new ObjectInputStream(bufin); Message msg = (Message)objin.readObject(); // Give message to our listener. controller.incomingMessage(msg); }catch(Exception ee){System.out.println(ee);} } //while }catch(Exception e){System.out.println(e);} } //method: run } //class: SocketReceiver