Package network

Source Code of network.RemoteListener

package network;

import java.io.*;
import java.net.*;

import main.ui.NodeConsole;

import util.Log;

public class RemoteListener extends Thread {

  //Handle to the on screen pulse display
  NodeConsole remoteListenerConsole = null;
 
  private int socket;

  private boolean closeDown = false;

  public RemoteListener(int socketNumber) {
    socket = socketNumber;
    remoteListenerConsole = new NodeConsole();
  }

  public void run() {
    remoteListenerConsole.start("Requests in","Listens for Requests from other nodes\n");
    accept();
  }
 
  public void accept() {

    ServerSocket serverSocket = null;
    PrintWriter out = null;
    BufferedReader in;
    MessageConvertor messageConvert = new MessageConvertor();
    Socket clientSocket = null;
    MessageProcessor processor = new MessageProcessor();

    try {
      serverSocket = new ServerSocket(socket);
      while (!closeDown) {
       
//        Yield to other threads - make app more responsive
        Thread.yield();
       
        clientSocket = serverSocket.accept();
        out = new PrintWriter(clientSocket.getOutputStream(), true);
        // new line
        Message inMessage = messageConvert
            .deserialiseMessage(new ObjectInputStream(clientSocket
                .getInputStream()));
        remoteListenerConsole.log("Command:" + inMessage.getCommand());
        remoteListenerConsole.log("FileContents:"
            + inMessage.getFileContents());
        processor.process(inMessage,remoteListenerConsole);
      }
      remoteListenerConsole.log("Listener shutting down");
      out.close();
      // in.close();
      clientSocket.close();
      serverSocket.close();
      // Start dealing with message / file

    } catch (Exception e) {
      e.printStackTrace();
      System.out.println("Could not listen on port: " + socket);
      System.exit(-1);
    }

  }

  public boolean isCloseDown() {
    return closeDown;
  }

  public void setCloseDown(boolean closeDown) {
    this.closeDown = closeDown;
  }
}
TOP

Related Classes of network.RemoteListener

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.