//Title: Elevator System //Version: //Copyright: Copyright (c) 2000 //Author: David Lowe //Company: Faculty of Engineering, UTS //Description:48440: Software Engineering // Major Project // Elevator Simulator //Filename: ManagerConnect.java import java.awt.*; import java.io.*; import java.util.*; import java.net.*; public class ManagerConnect implements Runnable { String className = "ManagerConnect"; ElevatorController elevCont; int elevNum; int elevPort; boolean verbose; // Time information Thread ThreadManIF; // Constructor public ManagerConnect(ElevatorController elevCont, int port, boolean verbose, int elevNum) { this.elevCont = elevCont; this.elevPort = port; this.verbose = verbose; this.elevNum = elevNum; // Start the Manager Interface thread ThreadManIF = new Thread(this, "ThreadManIF"); ThreadManIF.start(); System.out.println(className + ": Manager Interface constructed and running"); } // Main thread routine public void run() { ServerSocket server; Socket connection; String request, response; DataInputStream ip; DataOutputStream op; byte buf[] = new byte[1000]; int numread; try { // create the socket for the server server = new ServerSocket( elevPort, 100 ); System.out.println(className + ": Manager Socket set up on port " + elevPort); while (true) { // wait for a connection connection = server.accept(); ip = new DataInputStream(connection.getInputStream()); op = new DataOutputStream(connection.getOutputStream()); System.out.println(className + ": Connection established on port " + elevPort); // get messages and respond do { // read in the command numread = ip.read(buf); request = new String(buf, 0, numread); // process request // ### NOTE THIS NEEDS TO BE FINISHED - ALSO NEED TO MAKE // ### IT MULTITHREADING SO CAN HANDLE MULTIPLE OPERATOR // ### CONNECTIONS response = "Fail"; // send the response if (verbose) System.out.println(className + ": request <" + request + "> - response <" + response + ">"); op.write(response.getBytes()); op.flush(); } while (true); } } catch (IOException e) { e.printStackTrace(); } } }