From 29cfb05460c0beb39cffd579322b0e29a93b9e66 Mon Sep 17 00:00:00 2001 From: ielmie <65829854+ielmie@users.noreply.github.com> Date: Fri, 29 May 2020 01:06:25 -0400 Subject: [PATCH 1/6] Changes made for question 5 --- code/simplechat1/ClientConsole.java | 17 +- code/simplechat1/EchoServer.java | 35 ++ code/simplechat1/client/ChatClient.java | 22 + .../ocsf/client/AbstractClient.java | 333 +++++++++++++ .../ocsf/client/AdaptableClient.java | 82 ++++ .../ocsf/client/ObservableClient.java | 181 +++++++ code/simplechat1/ocsf/index.html | 22 + .../ocsf/server/AbstractServer.java | 459 ++++++++++++++++++ .../ocsf/server/AdaptableServer.java | 129 +++++ .../ocsf/server/ConnectionToClient.java | 270 +++++++++++ .../server/ObservableOriginatorServer.java | 165 +++++++ .../ocsf/server/ObservableServer.java | 309 ++++++++++++ .../ocsf/server/OriginatorMessage.java | 61 +++ 13 files changed, 2083 insertions(+), 2 deletions(-) create mode 100644 code/simplechat1/ocsf/client/AbstractClient.java create mode 100644 code/simplechat1/ocsf/client/AdaptableClient.java create mode 100644 code/simplechat1/ocsf/client/ObservableClient.java create mode 100644 code/simplechat1/ocsf/index.html create mode 100644 code/simplechat1/ocsf/server/AbstractServer.java create mode 100644 code/simplechat1/ocsf/server/AdaptableServer.java create mode 100644 code/simplechat1/ocsf/server/ConnectionToClient.java create mode 100644 code/simplechat1/ocsf/server/ObservableOriginatorServer.java create mode 100644 code/simplechat1/ocsf/server/ObservableServer.java create mode 100644 code/simplechat1/ocsf/server/OriginatorMessage.java diff --git a/code/simplechat1/ClientConsole.java b/code/simplechat1/ClientConsole.java index c9bb4e9..2706d7f 100644 --- a/code/simplechat1/ClientConsole.java +++ b/code/simplechat1/ClientConsole.java @@ -111,11 +111,24 @@ public static void main(String[] args) { host = args[0]; } - catch(ArrayIndexOutOfBoundsException e) + catch(ArrayIndexOutOfBoundsException e1) { host = "localhost"; } - ClientConsole chat= new ClientConsole(host, DEFAULT_PORT); + + //Q5b This try loop checks to see if there is a second argument + //If that's the case, it will assign it as the port number + try + { + port = Integer.valueOf(args[1]); + } + //If there's no 2nd argument, it will use the DEFAULT_PORT + catch(ArrayIndexOutOfBoundsException e2) + { + port = DEFAULT_PORT; + } + //will use the port variable defined above instead of DEFAULT_PORT + ClientConsole chat= new ClientConsole(host, port); chat.accept(); //Wait for console data } } diff --git a/code/simplechat1/EchoServer.java b/code/simplechat1/EchoServer.java index d4f3a1a..b734e31 100644 --- a/code/simplechat1/EchoServer.java +++ b/code/simplechat1/EchoServer.java @@ -39,6 +39,41 @@ public EchoServer(int port) //Instance methods ************************************************ + /** + * Hook method called each time an exception is thrown in a + * ConnectionToClient thread. + * The method may be overridden by subclasses but should remains + * synchronized. + * + * @param client the client that raised the exception. + * @param Throwable the exception thrown. + */ + synchronized protected void clientException( + ConnectionToClient client, Throwable exception) { + clientDisconnected(client); + } + + /** + * Hook method called each time a new client connection is + * accepted. The default implementation does nothing. + * @param client the connection connected to the client. + */ + protected void clientConnected(ConnectionToClient client) { + System.out.println("Client has logged on"); + } + + /** + * Hook method called each time a client disconnects. + * The default implementation does nothing. The method + * may be overridden by subclasses but should remains synchronized. + * + * @param client the connection with the client. + */ + synchronized protected void clientDisconnected(ConnectionToClient client) { + System.out.println("Client has logged off"); + } + + /** * This method handles any messages received from the client. * diff --git a/code/simplechat1/client/ChatClient.java b/code/simplechat1/client/ChatClient.java index fe1401e..fa2ee50 100644 --- a/code/simplechat1/client/ChatClient.java +++ b/code/simplechat1/client/ChatClient.java @@ -59,6 +59,28 @@ public void handleMessageFromServer(Object msg) clientUI.display(msg.toString()); } + /** + * Hook method called after the connection has been closed. The default + * implementation does nothing. The method may be overriden by subclasses to + * perform special processing such as cleaning up and terminating, or + * attempting to reconnect. + */ + protected void connectionClosed() { + System.out.println("The connection to the server is closed"); + } + + /** + * Hook method called each time an exception is thrown by the client's + * thread that is waiting for messages from the server. The method may be + * overridden by subclasses. + * + * @param exception + * the exception raised. + */ + protected void connectionException(Exception exception) { + quit(); + } + /** * This method handles all data coming from the UI * diff --git a/code/simplechat1/ocsf/client/AbstractClient.java b/code/simplechat1/ocsf/client/AbstractClient.java new file mode 100644 index 0000000..e905636 --- /dev/null +++ b/code/simplechat1/ocsf/client/AbstractClient.java @@ -0,0 +1,333 @@ +// This file contains material supporting section 3.7 of the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.client; + +import java.io.*; +import java.net.*; + +/** + * The AbstractClient contains all the methods necessary to set + * up the client side of a client-server architecture. When a client is thus + * connected to the server, the two programs can then exchange + * Object instances. + *

+ * Method handleMessageFromServer must be defined by a concrete + * subclass. Several other hook methods may also be overriden. + *

+ * Several public service methods are provided to application that use this + * framework. + *

+ * Project Name: OCSF (Object Client-Server Framework) + *

+ * + * @author Dr. Robert Laganière + * @author Dr. Timothy C. Lethbridge + * @author François Bél;langer + * @author Paul Holden + * @version February 2001 (2.12) + */ +public abstract class AbstractClient implements Runnable { + + // INSTANCE VARIABLES *********************************************** + + /** + * Sockets are used in the operating system as channels of communication + * between two processes. + * + * @see java.net.Socket + */ + private Socket clientSocket; + + /** + * The stream to handle data going to the server. + */ + private ObjectOutputStream output; + + /** + * The stream to handle data from the server. + */ + private ObjectInputStream input; + + /** + * The thread created to read data from the server. + */ + private Thread clientReader; + + /** + * Indicates if the thread is ready to stop. Needed so that the loop in the + * run method knows when to stop waiting for incoming messages. + */ + private boolean readyToStop = false; + + /** + * The server's host name. + */ + private String host; + + /** + * The port number. + */ + private int port; + + // CONSTRUCTORS ***************************************************** + + /** + * Constructs the client. + * + * @param host + * the server's host name. + * @param port + * the port number. + */ + public AbstractClient(String host, int port) { + // Initialize variables + this.host = host; + this.port = port; + } + + // INSTANCE METHODS ************************************************* + + /** + * Opens the connection with the server. If the connection is already + * opened, this call has no effect. + * + * @exception IOException + * if an I/O error occurs when opening. + */ + final public void openConnection() throws IOException { + // Do not do anything if the connection is already open + if (isConnected()) + return; + + // Create the sockets and the data streams + try { + clientSocket = new Socket(host, port); + output = new ObjectOutputStream(clientSocket.getOutputStream()); + input = new ObjectInputStream(clientSocket.getInputStream()); + } catch (IOException ex) + // All three of the above must be closed when there is a failure + // to create any of them + { + try { + closeAll(); + } catch (Exception exc) { + } + + throw ex; // Rethrow the exception. + } + + clientReader = new Thread(this); // Create the data reader thread + readyToStop = false; + clientReader.start(); // Start the thread + } + + /** + * Sends an object to the server. This is the only way that methods should + * communicate with the server. + * + * @param msg + * The message to be sent. + * @exception IOException + * if an I/O error occurs when sending + */ + final public void sendToServer(Object msg) throws IOException { + if (clientSocket == null || output == null) + throw new SocketException("socket does not exist"); + + output.writeObject(msg); + } + + /** + * Reset the object output stream so we can use the same + * buffer repeatedly. This would not normally be used, but is necessary + * in some circumstances when Java refuses to send data that it thinks has been sent. + */ + final public void forceResetAfterSend() throws IOException { + output.reset(); + } + + /** + * Closes the connection to the server. + * + * @exception IOException + * if an I/O error occurs when closing. + */ + final public void closeConnection() throws IOException { + // Prevent the thread from looping any more + readyToStop = true; + + try { + closeAll(); + } finally { + // Call the hook method + connectionClosed(); + } + } + + // ACCESSING METHODS ------------------------------------------------ + + /** + * @return true if the client is connnected. + */ + final public boolean isConnected() { + return clientReader != null && clientReader.isAlive(); + } + + /** + * @return the port number. + */ + final public int getPort() { + return port; + } + + /** + * Sets the server port number for the next connection. The change in port + * only takes effect at the time of the next call to openConnection(). + * + * @param port + * the port number. + */ + final public void setPort(int port) { + this.port = port; + } + + /** + * @return the host name. + */ + final public String getHost() { + return host; + } + + /** + * Sets the server host for the next connection. The change in host only + * takes effect at the time of the next call to openConnection(). + * + * @param host + * the host name. + */ + final public void setHost(String host) { + this.host = host; + } + + /** + * returns the client's description. + * + * @return the client's Inet address. + */ + final public InetAddress getInetAddress() { + return clientSocket.getInetAddress(); + } + + // RUN METHOD ------------------------------------------------------- + + /** + * Waits for messages from the server. When each arrives, a call is made to + * handleMessageFromServer(). Not to be explicitly called. + */ + final public void run() { + connectionEstablished(); + + // The message from the server + Object msg; + + // Loop waiting for data + + try { + while (!readyToStop) { + // Get data from Server and send it to the handler + // The thread waits indefinitely at the following + // statement until something is received from the server + msg = input.readObject(); + + // Concrete subclasses do what they want with the + // msg by implementing the following method + handleMessageFromServer(msg); + } + } catch (Exception exception) { + if (!readyToStop) { + try { + closeAll(); + } catch (Exception ex) { + } + + connectionException(exception); + } + } finally { + clientReader = null; + } + } + + // METHODS DESIGNED TO BE OVERRIDDEN BY CONCRETE SUBCLASSES --------- + + /** + * Hook method called after the connection has been closed. The default + * implementation does nothing. The method may be overriden by subclasses to + * perform special processing such as cleaning up and terminating, or + * attempting to reconnect. + */ + protected void connectionClosed() { + } + + /** + * Hook method called each time an exception is thrown by the client's + * thread that is waiting for messages from the server. The method may be + * overridden by subclasses. + * + * @param exception + * the exception raised. + */ + protected void connectionException(Exception exception) { + } + + /** + * Hook method called after a connection has been established. The default + * implementation does nothing. It may be overridden by subclasses to do + * anything they wish. + */ + protected void connectionEstablished() { + } + + /** + * Handles a message sent from the server to this client. This MUST be + * implemented by subclasses, who should respond to messages. + * + * @param msg + * the message sent. + */ + protected abstract void handleMessageFromServer(Object msg); + + // METHODS TO BE USED FROM WITHIN THE FRAMEWORK ONLY ---------------- + + /** + * Closes all aspects of the connection to the server. + * + * @exception IOException + * if an I/O error occurs when closing. + */ + private void closeAll() throws IOException { + try { + // Close the socket + if (clientSocket != null) + clientSocket.close(); + + // Close the output stream + if (output != null) + output.close(); + + // Close the input stream + if (input != null) + input.close(); + } finally { + // Set the streams and the sockets to NULL no matter what + // Doing so allows, but does not require, any finalizers + // of these objects to reclaim system resources if and + // when they are garbage collected. + output = null; + input = null; + clientSocket = null; + } + } +} +// end of AbstractClient class \ No newline at end of file diff --git a/code/simplechat1/ocsf/client/AdaptableClient.java b/code/simplechat1/ocsf/client/AdaptableClient.java new file mode 100644 index 0000000..143592e --- /dev/null +++ b/code/simplechat1/ocsf/client/AdaptableClient.java @@ -0,0 +1,82 @@ +// This file contains material supporting section 6.13 of the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.client; + +import java.io.*; +import java.net.*; +import java.util.*; + +/** +* The AdaptableClient is a class +* that extends the AbstractClient in place of +* the ObservableClient .

+* +* Project Name: OCSF (Object Client-Server Framework)

+* +* @author Dr. Robert Laganière +* @version Febuary 2001 +*/ +class AdaptableClient extends AbstractClient +{ + //Instance variables ********************************************** + + /** + * The proxy used to simulate multiple class inheritance. + */ + private ObservableClient client; + +// CONSTRUCTORS ***************************************************** + + /** + * Constructs the client adapter. + * + * @param host the server's host name. + * @param port the port number. + */ + public AdaptableClient(String host, int port, ObservableClient client) + { + super(host, port); + this.client = client; + } + +// OVERRIDDEN METHODS ************************************************* + + /** + * Hook method called after the connection has been closed. + */ + final protected void connectionClosed() + { + client.connectionClosed(); + } + + /** + * Hook method called after an exception + * is raised by the client listening thread. + * + * @param exception the exception raised. + */ + final protected void connectionException(Exception exception) + { + client.connectionException(exception); + } + + /** + * Hook method called after a connection has been established. + */ + final protected void connectionEstablished() + { + client.connectionEstablished(); + } + + /** + * Handles a message sent from the server to this client. + * + * @param msg the message sent. + */ + final protected void handleMessageFromServer(Object msg) + { + client.handleMessageFromServer(msg); + } +} diff --git a/code/simplechat1/ocsf/client/ObservableClient.java b/code/simplechat1/ocsf/client/ObservableClient.java new file mode 100644 index 0000000..a816488 --- /dev/null +++ b/code/simplechat1/ocsf/client/ObservableClient.java @@ -0,0 +1,181 @@ +// This file contains material supporting section 6.13 of the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.client; + +import java.util.*; +import java.io.*; +import java.net.*; + +/** + * This class acts as a subclass of AbstractClient + * and is also an Observable class. + * Each time a new message is received, observers are notified. + * + * @author Dr Robert Laganière + * @author Dr Timothy C. Lethbridge + * @author François Bélange + * @version Febuary 2001 + */ +public class ObservableClient extends Observable +{ + // Class variables *************************************************** + + /** + * Indicates occurence of a connection exception. + */ + public static final String CONNECTION_EXCEPTION = "#OC:Connection error."; + + /** + * Indicates a close of the connection to server. + */ + public static final String CONNECTION_CLOSED = "#OC:Connection closed."; + + /** + * Indicates establishment of a connection to server. + */ + public static final String CONNECTION_ESTABLISHED = "#OC:Connection established."; + + //Instance variables ********************************************** + + /** + * The service instance used to simulate multiple class inheritance. + */ + private AdaptableClient service; + + //Constructor ***************************************************** + + public ObservableClient(String host, int port) + { + service = new AdaptableClient(host, port, this); + } + + //Instance methods ************************************************ + + /** + * Opens the connections with the server. + */ + final public void openConnection() throws IOException + { + service.openConnection(); + } + + /** + * Closes the connection to the server. + */ + final public void closeConnection() throws IOException + { + service.closeConnection(); + } + + /** + * Sends an object to the server. This is the only way that + * methods should communicate with the server. + * + * @param msg The message to be sent. + */ + final public void sendToServer(Object msg) throws IOException + { + service.sendToServer(msg); + } + +// ACCESSING METHODS ------------------------------------------------ + + /** + * @used to find out if the client is connnected. + */ + final public boolean isConnected() + { + return service.isConnected(); + } + + /** + * @return the port number. + */ + final public int getPort() + { + return service.getPort(); + } + + /** + * Sets the server port number for the next connection. + * Only has effect if the client is not currently connected. + * + * @param port the port number. + */ + final public void setPort(int port) + { + service.setPort(port); + } + + /** + * @return the host name. + */ + final public String getHost() + { + return service.getHost(); + } + + /** + * Sets the server host for the next connection. + * Only has effect if the client is not currently connected. + * + * @param host the host name. + */ + final public void setHost(String host) + { + service.setHost(host); + } + + /** + * @return the client's Inet address. + */ + final public InetAddress getInetAddress() + { + return service.getInetAddress(); + } + + + /** + * This method is used to handle messages from the server. This method + * can be overriden but should always call notifyObservers(). + * + * @param message The message received from the client. + */ + protected void handleMessageFromServer(Object message) + { + setChanged(); + notifyObservers(message); + } + + /** + * Hook method called after the connection has been closed. + */ + protected void connectionClosed() + { + setChanged(); + notifyObservers(CONNECTION_CLOSED); + } + + /** + * Hook method called each time an exception + * is raised by the client listening thread. + * + * @param exception the exception raised. + */ + protected void connectionException(Exception exception) + { + setChanged(); + notifyObservers(CONNECTION_EXCEPTION); + } + + /** + * Hook method called after a connection has been established. + */ + protected void connectionEstablished() + { + setChanged(); + notifyObservers(CONNECTION_ESTABLISHED); + } +} diff --git a/code/simplechat1/ocsf/index.html b/code/simplechat1/ocsf/index.html new file mode 100644 index 0000000..13025a0 --- /dev/null +++ b/code/simplechat1/ocsf/index.html @@ -0,0 +1,22 @@ + + +Installing and Running OCSF + + + +

To install OCSF, simply compile all the .java files in the client and +server directories.

+ +

OCSF is a Framework, so this directory contains no main program. To +learn how it works, consult the book +"Object-Oriented Software Engineering: Practical Software Development +using UML and Java" by Lethbridge and Laganière.

+ +

To use OCSF, import the "ocsf.client" or "ocsf.server" package in your +application code. Make sure that the ocsf directory is in your classpath +when you compile your application.

+ +

Back to the source code page.

+ + + diff --git a/code/simplechat1/ocsf/server/AbstractServer.java b/code/simplechat1/ocsf/server/AbstractServer.java new file mode 100644 index 0000000..0134b22 --- /dev/null +++ b/code/simplechat1/ocsf/server/AbstractServer.java @@ -0,0 +1,459 @@ +// This file contains material supporting section 3.8 of the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.server; + +import java.net.*; +import java.util.*; +import java.io.*; + +/** +* The AbstractServer class maintains a thread that waits +* for connection attempts from clients. When a connection attempt occurs +* it creates a new ConnectionToClient instance which +* runs as a thread. When a client is thus connected to the +* server, the two programs can then exchange Object +* instances.

+* +* Method handleMessageFromClient must be defined by +* a concrete subclass. Several other hook methods may also be +* overriden.

+* +* Several public service methods are provided to applications that use +* this framework, and several hook methods are also available

+* +* Project Name: OCSF (Object Client-Server Framework)

+* +* @author Dr Robert Laganière +* @author Dr Timothy C. Lethbridge +* @author François Bélanger +* @author Paul Holden +* @version February 2001 (2.12) +* @see ocsf.server.ConnectionToClient +*/ +public abstract class AbstractServer implements Runnable +{ + // INSTANCE VARIABLES ********************************************* + + /** + * The server socket: listens for clients who want to connect. + */ + private ServerSocket serverSocket = null; + + /** + * The connection listener thread. + */ + private Thread connectionListener; + + /** + * The port number + */ + private int port; + + /** + * The server timeout while for accepting connections. + * After timing out, the server will check to see if a command to + * stop the server has been issued; it not it will resume accepting + * connections. + * Set to half a second by default. + */ + private int timeout = 500; + + /** + * The maximum queue length; i.e. the maximum number of clients that + * can be waiting to connect. + * Set to 10 by default. + */ + private int backlog = 10; + + /** + * The thread group associated with client threads. Each member of the + * thread group is a ConnectionToClient . + */ + private ThreadGroup clientThreadGroup; + + /** + * Indicates if the listening thread is ready to stop. Set to + * false by default. + */ + private boolean readyToStop = false; + + +// CONSTRUCTOR ****************************************************** + + /** + * Constructs a new server. + * + * @param port the port number on which to listen. + */ + public AbstractServer(int port) + { + this.port = port; + + this.clientThreadGroup = + new ThreadGroup("ConnectionToClient threads") + { + // All uncaught exceptions in connection threads will + // be sent to the clientException callback method. + public void uncaughtException( + Thread thread, Throwable exception) + { + clientException((ConnectionToClient)thread, exception); + } + }; + } + + +// INSTANCE METHODS ************************************************* + + /** + * Begins the thread that waits for new clients. + * If the server is already in listening mode, this + * call has no effect. + * + * @exception IOException if an I/O error occurs + * when creating the server socket. + */ + final public void listen() throws IOException + { + if (!isListening()) + { + if (serverSocket == null) + { + serverSocket = new ServerSocket(getPort(), backlog); + } + + serverSocket.setSoTimeout(timeout); + readyToStop = false; + connectionListener = new Thread(this); + connectionListener.start(); + } + } + + /** + * Causes the server to stop accepting new connections. + */ + final public void stopListening() + { + readyToStop = true; + } + + /** + * Closes the server socket and the connections with all clients. + * Any exception thrown while closing a client is ignored. + * If one wishes to catch these exceptions, then clients + * should be individually closed before calling this method. + * The method also stops listening if this thread is running. + * If the server is already closed, this + * call has no effect. + * + * @exception IOException if an I/O error occurs while + * closing the server socket. + */ + final synchronized public void close() throws IOException + { + if (serverSocket == null) + return; + stopListening(); + try + { + serverSocket.close(); + } + finally + { + // Close the client sockets of the already connected clients + Thread[] clientThreadList = getClientConnections(); + for (int i=0; iThread containing + * ConnectionToClient instances. + */ + synchronized final public Thread[] getClientConnections() + { + Thread[] clientThreadList = new + Thread[clientThreadGroup.activeCount()]; + + clientThreadGroup.enumerate(clientThreadList); + + return clientThreadList; + } + + /** + * Counts the number of clients currently connected. + * + * @return the number of clients currently connected. + */ + final public int getNumberOfClients() + { + return clientThreadGroup.activeCount(); + } + + /** + * Returns the port number. + * + * @return the port number. + */ + final public int getPort() + { + return port; + } + + /** + * Sets the port number for the next connection. + * The server must be closed and restarted for the port + * change to be in effect. + * + * @param port the port number. + */ + final public void setPort(int port) + { + this.port = port; + } + + /** + * Sets the timeout time when accepting connections. + * The default is half a second. This means that stopping the + * server may take up to timeout duration to actually stop. + * The server must be stopped and restarted for the timeout + * change to be effective. + * + * @param timeout the timeout time in ms. + */ + final public void setTimeout(int timeout) + { + this.timeout = timeout; + } + + /** + * Sets the maximum number of waiting connections accepted by the + * operating system. The default is 20. + * The server must be closed and restarted for the backlog + * change to be in effect. + * + * @param backlog the maximum number of connections. + */ + final public void setBacklog(int backlog) + { + this.backlog = backlog; + } + +// RUN METHOD ------------------------------------------------------- + + /** + * Runs the listening thread that allows clients to connect. + * Not to be called. + */ + final public void run() + { + // call the hook method to notify that the server is starting + serverStarted(); + + try + { + // Repeatedly waits for a new client connection, accepts it, and + // starts a new thread to handle data exchange. + while(!readyToStop) + { + try + { + // Wait here for new connection attempts, or a timeout + Socket clientSocket = serverSocket.accept(); + + // When a client is accepted, create a thread to handle + // the data exchange, then add it to thread group + + synchronized(this) + { + ConnectionToClient c = new ConnectionToClient( + this.clientThreadGroup, clientSocket, this); + } + } + catch (InterruptedIOException exception) + { + // This will be thrown when a timeout occurs. + // The server will continue to listen if not ready to stop. + } + } + + // call the hook method to notify that the server has stopped + serverStopped(); + } + catch (IOException exception) + { + if (!readyToStop) + { + // Closing the socket must have thrown a SocketException + listeningException(exception); + } + else + { + serverStopped(); + } + } + finally + { + readyToStop = true; + connectionListener = null; + } + } + + +// METHODS DESIGNED TO BE OVERRIDDEN BY CONCRETE SUBCLASSES --------- + + /** + * Hook method called each time a new client connection is + * accepted. The default implementation does nothing. + * @param client the connection connected to the client. + */ + protected void clientConnected(ConnectionToClient client) {} + + /** + * Hook method called each time a client disconnects. + * The default implementation does nothing. The method + * may be overridden by subclasses but should remains synchronized. + * + * @param client the connection with the client. + */ + synchronized protected void clientDisconnected( + ConnectionToClient client) {} + + /** + * Hook method called each time an exception is thrown in a + * ConnectionToClient thread. + * The method may be overridden by subclasses but should remains + * synchronized. + * + * @param client the client that raised the exception. + * @param Throwable the exception thrown. + */ + synchronized protected void clientException( + ConnectionToClient client, Throwable exception) {} + + /** + * Hook method called when the server stops accepting + * connections because an exception has been raised. + * The default implementation does nothing. + * This method may be overriden by subclasses. + * + * @param exception the exception raised. + */ + protected void listeningException(Throwable exception) {} + + /** + * Hook method called when the server starts listening for + * connections. The default implementation does nothing. + * The method may be overridden by subclasses. + */ + protected void serverStarted() {} + + /** + * Hook method called when the server stops accepting + * connections. The default implementation + * does nothing. This method may be overriden by subclasses. + */ + protected void serverStopped() {} + + /** + * Hook method called when the server is clased. + * The default implementation does nothing. This method may be + * overriden by subclasses. When the server is closed while still + * listening, serverStopped() will also be called. + */ + protected void serverClosed() {} + + /** + * Handles a command sent from one client to the server. + * This MUST be implemented by subclasses, who should respond to + * messages. + * This method is called by a synchronized method so it is also + * implcitly synchronized. + * + * @param msg the message sent. + * @param client the connection connected to the client that + * sent the message. + */ + protected abstract void handleMessageFromClient( + Object msg, ConnectionToClient client); + + +// METHODS TO BE USED FROM WITHIN THE FRAMEWORK ONLY ---------------- + + /** + * Receives a command sent from the client to the server. + * Called by the run method of ConnectionToClient + * instances that are watching for messages coming from the server + * This method is synchronized to ensure that whatever effects it has + * do not conflict with work being done by other threads. The method + * simply calls the handleMessageFromClient slot method. + * + * @param msg the message sent. + * @param client the connection connected to the client that + * sent the message. + */ + final synchronized void receiveMessageFromClient( + Object msg, ConnectionToClient client) + { + this.handleMessageFromClient(msg, client); + } +} +// End of AbstractServer Class diff --git a/code/simplechat1/ocsf/server/AdaptableServer.java b/code/simplechat1/ocsf/server/AdaptableServer.java new file mode 100644 index 0000000..24462d4 --- /dev/null +++ b/code/simplechat1/ocsf/server/AdaptableServer.java @@ -0,0 +1,129 @@ +// This file contains material supporting section 6.13 of the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.server; + +import java.io.*; +import java.net.*; +import java.util.*; + +/** +* The AdaptableServer is an adapter class +* that extends the AbstractServer class in place of +* the AbstractObservableServer .

+* +* Project Name: OCSF (Object Client-Server Framework)

+* +* @author Dr. Robert Laganière +* @version Febuary 2001 +*/ +class AdaptableServer extends AbstractServer +{ + //Instance variables ********************************************** + + /** + * The adapter used to simulate multiple class inheritance. + */ + private ObservableServer server; + +// CONSTRUCTORS ***************************************************** + + /** + * Constructs the server adapter. + * + * @param host the server's host name. + * @param port the port number. + */ + public AdaptableServer(int port, ObservableServer server) + { + super(port); + this.server = server; + } + +// OVERRIDDEN METHODS --------- + + /** + * Hook method called each time a new client connection is + * accepted. + * + * @param client the connection connected to the client. + */ + final protected void clientConnected(ConnectionToClient client) + { + server.clientConnected(client); + } + + /** + * Hook method called each time a client disconnects. + * + * @param client the connection with the client. + */ + final protected void clientDisconnected(ConnectionToClient client) + { + server.clientDisconnected(client); + } + + /** + * Hook method called each time an exception + * is raised in a client thread. + * + * @param client the client that raised the exception. + * @param exception the exception raised. + */ + final protected void clientException(ConnectionToClient client, + Throwable exception) + { + server.clientException(client, exception); + } + + /** + * Hook method called when the server stops accepting + * connections because an exception has been raised. + * + * @param exception the exception raised. + */ + final protected void listeningException(Throwable exception) + { + server.listeningException(exception); + } + + /** + * Hook method called when the server stops accepting + * connections. + */ + final protected void serverStopped() + { + server.serverStopped(); + } + + /** + * Hook method called when the server starts listening for + * connections. + */ + final protected void serverStarted() + { + server.serverStarted(); + } + + /** + * Hook method called when the server is closed. + */ + final protected void serverClosed() + { + server.serverClosed(); + } + + /** + * Handles a command sent from the client to the server. + * + * @param msg the message sent. + * @param client the connection connected to the client that + * sent the message. + */ + final protected void handleMessageFromClient(Object msg, + ConnectionToClient client) + { + server.handleMessageFromClient(msg, client); + } +} diff --git a/code/simplechat1/ocsf/server/ConnectionToClient.java b/code/simplechat1/ocsf/server/ConnectionToClient.java new file mode 100644 index 0000000..4394b37 --- /dev/null +++ b/code/simplechat1/ocsf/server/ConnectionToClient.java @@ -0,0 +1,270 @@ +// This file contains material supporting section 3.8 of the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.server; + +import java.io.*; +import java.net.*; +import java.util.HashMap; + +/** + * An instance of this class is created by the server when a client connects. It + * accepts messages coming from the client and is responsible for sending data + * to the client since the socket is private to this class. The AbstractServer + * contains a set of instances of this class and is responsible for adding and + * deleting them. + *

+ * Project Name: OCSF (Object Client-Server Framework) + *

+ * + * @author Dr Robert Laganière + * @author Dr Timothy C. Lethbridge + * @author François Bélanger + * @author Paul Holden + * @version February 2001 (2.12) + */ +public class ConnectionToClient extends Thread { + // INSTANCE VARIABLES *********************************************** + + /** + * A reference to the Server that created this instance. + */ + private AbstractServer server; + + /** + * Sockets are used in the operating system as channels of communication + * between two processes. + * + * @see java.net.Socket + */ + private Socket clientSocket; + + /** + * Stream used to read from the client. + */ + private ObjectInputStream input; + + /** + * Stream used to write to the client. + */ + private ObjectOutputStream output; + + /** + * Indicates if the thread is ready to stop. Set to true when closing of the + * connection is initiated. + */ + private boolean readyToStop; + + /** + * Map to save information about the client such as its login ID. The + * initial size of the map is small since it is not expected that concrete + * servers will want to store many different types of information about each + * client. Used by the setInfo and getInfo methods. + */ + private HashMap savedInfo = new HashMap(10); + + // CONSTRUCTORS ***************************************************** + + /** + * Constructs a new connection to a client. + * + * @param group + * the thread groupSystem.out.println("Client at "+ client + + * "connected"); that contains the connections. + * @param clientSocket + * contains the client's socket. + * @param server + * a reference to the server that created this instance + * @exception IOException + * if an I/O error occur when creating the connection. + */ + ConnectionToClient(ThreadGroup group, Socket clientSocket, AbstractServer server) throws IOException { + super(group, (Runnable) null); + // Initialize variables + this.clientSocket = clientSocket; + this.server = server; + + clientSocket.setSoTimeout(0); // make sure timeout is infinite + + // Initialize the objects streams + try { + input = new ObjectInputStream(clientSocket.getInputStream()); + output = new ObjectOutputStream(clientSocket.getOutputStream()); + } catch (IOException ex) { + try { + closeAll(); + } catch (Exception exc) { + } + + throw ex; // Rethrow the exception. + } + + readyToStop = false; + start(); // Start the thread waits for data from the socket + } + + // INSTANCE METHODS ************************************************* + + /** + * Sends an object to the client. + * + * @param msg + * the message to be sent. + * @exception IOException + * if an I/O error occur when sending the message. + */ + final public void sendToClient(Object msg) throws IOException { + if (clientSocket == null || output == null) + throw new SocketException("socket does not exist"); + + output.writeObject(msg); + } + + /** + * Reset the output stream so we can use the same + * buffer repeatedly. This would not normally be used, but is necessary + * in some circumstances when Java refuses to send data that it thinks has been sent. + */ + final public void forceResetAfterSend() throws IOException { + output.reset(); + } + + /** + * Closes the client. If the connection is already closed, this call has no + * effect. + * + * @exception IOException + * if an error occurs when closing the socket. + */ + final public void close() throws IOException { + readyToStop = true; // Set the flag that tells the thread to stop + + try { + closeAll(); + } finally { + server.clientDisconnected(this); + } + } + + // ACCESSING METHODS ------------------------------------------------ + + /** + * Returns the address of the client. + * + * @return the client's Internet address. + */ + final public InetAddress getInetAddress() { + return clientSocket == null ? null : clientSocket.getInetAddress(); + } + + /** + * Returns a string representation of the client. + * + * @return the client's description. + */ + public String toString() { + return clientSocket == null ? null : clientSocket.getInetAddress().getHostName() + " (" + + clientSocket.getInetAddress().getHostAddress() + ")"; + } + + /** + * Saves arbitrary information about this client. Designed to be used by + * concrete subclasses of AbstractServer. Based on a hash map. + * + * @param infoType + * identifies the type of information + * @param info + * the information itself. + */ + public void setInfo(String infoType, Object info) { + savedInfo.put(infoType, info); + } + + /** + * Returns information about the client saved using setInfo. Based on a hash + * map. + * + * @param infoType + * identifies the type of information + */ + public Object getInfo(String infoType) { + return savedInfo.get(infoType); + } + + // RUN METHOD ------------------------------------------------------- + + /** + * Constantly reads the client's input stream. Sends all objects that are + * read to the server. Not to be called. + */ + final public void run() { + server.clientConnected(this); + + // This loop reads the input stream and responds to messages + // from clients + try { + // The message from the client + Object msg; + + while (!readyToStop) { + // This block waits until it reads a message from the client + // and then sends it for handling by the server + msg = input.readObject(); + server.receiveMessageFromClient(msg, this); + } + } catch (Exception exception) { + if (!readyToStop) { + try { + closeAll(); + } catch (Exception ex) { + } + + server.clientException(this, exception); + } + } + } + + // METHODS TO BE USED FROM WITHIN THE FRAMEWORK ONLY ---------------- + + /** + * Closes all connection to the server. + * + * @exception IOException + * if an I/O error occur when closing the connection. + */ + private void closeAll() throws IOException { + try { + // Close the socket + if (clientSocket != null) + clientSocket.close(); + + // Close the output stream + if (output != null) + output.close(); + + // Close the input stream + if (input != null) + input.close(); + } finally { + // Set the streams and the sockets to NULL no matter what + // Doing so allows, but does not require, any finalizers + // of these objects to reclaim system resources if and + // when they are garbage collected. + output = null; + input = null; + clientSocket = null; + } + } + + /** + * This method is called by garbage collection. + */ + protected void finalize() { + try { + closeAll(); + } catch (IOException e) { + } + } +} +// End of ConnectionToClient class \ No newline at end of file diff --git a/code/simplechat1/ocsf/server/ObservableOriginatorServer.java b/code/simplechat1/ocsf/server/ObservableOriginatorServer.java new file mode 100644 index 0000000..4333694 --- /dev/null +++ b/code/simplechat1/ocsf/server/ObservableOriginatorServer.java @@ -0,0 +1,165 @@ +// This file contains material supporting the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.server; + +/** +* The ObservableOriginatorServer is a subclass +* of ObservableServer that sends +* OriginatorMessage instances to its observers. +* This class should be used when the observers need to know +* the orginator of the messages received. The originator +* is null when the message sent concerns the server. +* +* Project Name: OCSF (Object Client-Server Framework)

+* +* @author Dr Robert Laganière +* @author Dr Timothy C. Lethbridge +* @author François Bélanger +* @author Paul Holden +* @version February 2001 (2.12) +* @see ocsf.server.OriginatorMessage +*/ +public class ObservableOriginatorServer extends ObservableServer +{ + // Constructor ****************************************************** + + /** + * Constructs a new server. + * + * @param port the port on which to listen. + */ + public ObservableOriginatorServer(int port) + { + super(port); + } + + // Instance methods ************************************************ + + /** + * This method is used to handle messages coming from the client. + * Observers are notfied by receiveing an instance of OriginatorMessage + * that contains both the message received and a reference to the + * client who sent the message. + * + * @param message The message received from the client. + * @param client The connection to the client. + */ + protected synchronized void handleMessageFromClient + (Object message, ConnectionToClient client) + { + setChanged(); + notifyObservers(new OriginatorMessage(client, message)); + } + + /** + * Method called each time a new client connection is + * accepted. It notifies observers by sending an + * OriginatorMessage instance + * containing a reference to that client and + * the message defined by the static variable CLIENT_CONNECTED. + * + * @param client the connection connected to the client. + */ + protected synchronized void clientConnected(ConnectionToClient client) + { + setChanged(); + notifyObservers(new OriginatorMessage(client, CLIENT_CONNECTED)); + } + + /** + * Method called each time a client connection is + * disconnected. It notifies observers by sending an + * OriginatorMessage instance + * containing a reference to that client and + * the message defined by the static variable CLIENT_DISCONNECTED. + * + * @param client the connection connected to the client. + */ + synchronized protected void clientDisconnected(ConnectionToClient client) + { + setChanged(); + notifyObservers(new OriginatorMessage(client, CLIENT_DISCONNECTED)); + } + + + /** + * Method called each time an exception is raised + * by a client connection. + * It notifies observers by sending an + * OriginatorMessage instance + * containing a reference to that client and + * the message defined by the static variable CLIENT_EXCEPTION + * to which is appended the exception message. + * + * @param client the client that raised the exception. + * @param Throwable the exception thrown. + */ + synchronized protected void clientException( + ConnectionToClient client, Throwable exception) + { + setChanged(); + notifyObservers( + new OriginatorMessage(client, + CLIENT_EXCEPTION + exception.getMessage())); + } + + /** + * Method called each time an exception is raised + * while listening. + * It notifies observers by sending an + * OriginatorMessage instance + * containing the message defined by the static variable LISTENING_EXCEPTION + * to which is appended the exception message. + * The originator is set to null. + * + * @param exception the exception raised. + */ + protected synchronized void listeningException(Throwable exception) + { + setChanged(); + notifyObservers( + new OriginatorMessage(null, + LISTENING_EXCEPTION + exception.getMessage())); + } + + /** + * Method called each time the server is started. + * It notifies observers by sending an + * OriginatorMessage instance + * containing the message defined by the static variable SERVER_STARTED. + * The originator is set to null. + */ + protected synchronized void serverStarted() + { + setChanged(); + notifyObservers(new OriginatorMessage(null, SERVER_STARTED)); + } + + /** + * Method called each time the server is stopped. + * It notifies observers by sending an + * OriginatorMessage instance + * containing the message defined by the static variable SERVER_STOPPED. + * The originator is set to null. + */ + synchronized protected void serverStopped() + { + setChanged(); + notifyObservers(new OriginatorMessage(null, SERVER_STOPPED)); + } + + /** + * Method called each time the server is closed. + * It notifies observers by sending an + * OriginatorMessage instance + * containing the message defined by the static variable SERVER_CLOSED. + * The originator is set to null. + */ + synchronized protected void serverClosed() + { + setChanged(); + notifyObservers(new OriginatorMessage(null, SERVER_CLOSED)); + } +} diff --git a/code/simplechat1/ocsf/server/ObservableServer.java b/code/simplechat1/ocsf/server/ObservableServer.java new file mode 100644 index 0000000..5b16752 --- /dev/null +++ b/code/simplechat1/ocsf/server/ObservableServer.java @@ -0,0 +1,309 @@ +// This file contains material supporting section 6.13 of the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.server; + +import java.util.*; +import java.io.*; +import java.net.*; + +/** + * This class acts as a subclass of AbstractServer + * and is also an Observable class. + * This means that when a message is received, all observers + * are notified. + * + * @author François Bélange + * @author Dr Timothy C. Lethbridge + * @author Dr Robert Laganière + * @version August 2000 + */ + +public class ObservableServer extends Observable +{ + // Class variables ************************************************ + + /** + * The string sent to the observers when a client has connected. + */ + public static final String CLIENT_CONNECTED= "#OS:Client connected."; + + /** + * The string sent to the observers when a client has disconnected. + */ + public static final String CLIENT_DISCONNECTED= "#OS:Client disconnected."; + + /** + * The string sent to the observers when an exception occurred with a client. + * The error message of that exception will be appended to this string. + */ + public static final String CLIENT_EXCEPTION= "#OS:Client exception."; + + /** + * The string sent to the observers when a listening exception occurred. + * The error message of that exception will be appended to this string. + */ + public static final String LISTENING_EXCEPTION= "#OS:Listening exception."; + + /** + * The string sent to the observers when the server has closed. + */ + public static final String SERVER_CLOSED= "#OS:Server closed."; + + /** + * The string sent to the observers when the server has started. + */ + public static final String SERVER_STARTED= "#OS:Server started."; + + /** + * The string sent to the observers when the server has stopped. + */ + public static final String SERVER_STOPPED= "#OS:Server stopped."; + + + //Instance variables ********************************************** + + /** + * The service used to simulate multiple class inheritance. + */ + private AdaptableServer service; + + + //Constructor ***************************************************** + + /** + * Constructs a new server. + * + * @param port the port on which to listen. + */ + public ObservableServer(int port) + { + service = new AdaptableServer(port, this); + } + + //Instance methods ************************************************ + + /** + * Begins the thread that waits for new clients + */ + final public void listen() throws IOException + { + service.listen(); + } + + /** + * Causes the server to stop accepting new connections. + */ + final public void stopListening() + { + service.stopListening(); + } + + /** + * Closes the server's connections with all clients. + */ + final public void close() throws IOException + { + service.close(); + } + + /** + * Sends a message to every client connected to the server. + * + * @param msg The message to be sent + */ + public void sendToAllClients(Object msg) + { + service.sendToAllClients(msg); + } + +// ACCESSING METHODS ------------------------------------------------ + + /** + * Used to find out if the server is accepting new clients. + */ + final public boolean isListening() + { + return service.isListening(); + } + + /** + * Returns an array of containing the existing + * client connections. This can be used by + * concrete subclasses to implement messages that do something with + * each connection (e.g. kill it, send a message to it etc.) + * + * @return an array of Thread containing + * ConnectionToClient instances. + */ + final public Thread[] getClientConnections() + { + return service.getClientConnections(); + } + + /** + * @return the number of clients currently connected. + */ + final public int getNumberOfClients() + { + return service.getNumberOfClients(); + } + + /** + * @return the port number. + */ + final public int getPort() + { + return service.getPort(); + } + + /** + * Sets the port number for the next connection. + * Only has effect if the server is not currently listening. + * + * @param port the port number. + */ + final public void setPort(int port) + { + service.setPort(port); + } + + /** + * Sets the timeout time when accepting connection. + * The default is half a second. + * The server must be stopped and restarted for the timeout + * change be in effect. + * + * @param timeout the timeout time in ms. + */ + final public void setTimeout(int timeout) + { + service.setTimeout(timeout); + } + + /** + * Sets the maximum number of + * waiting connections accepted by the operating system. + * The default is 20. + * The server must be closed and restart for the backlog + * change be in effect. + * + * @param backlog the maximum number of connections. + */ + final public void setBacklog(int backlog) + { + service.setBacklog(backlog); + } + + /** + * Hook method called each time a new client connection is + * accepted. The method may be overridden by subclasses. + * + * @param client the connection connected to the client. + */ + protected synchronized void clientConnected(ConnectionToClient client) + { + setChanged(); + notifyObservers(CLIENT_CONNECTED); + } + + /** + * Hook method called each time a client disconnects. + * The method may be overridden by subclasses. + * + * @param client the connection with the client. + */ + protected synchronized void clientDisconnected(ConnectionToClient client) + { + setChanged(); + notifyObservers(CLIENT_DISCONNECTED); + } + + /** + * Hook method called each time an exception + * is raised in a client thread. + * This implementation simply closes the + * client connection, ignoring any exception. + * The method may be overridden by subclasses. + * + * @param client the client that raised the exception. + * @param exception the exception raised. + */ + protected synchronized void clientException(ConnectionToClient client, + Throwable exception) + { + setChanged(); + notifyObservers(CLIENT_EXCEPTION); + try + { + client.close(); + } + catch (Exception e) {} + } + + /** + * This method is called when the server stops accepting + * connections because an exception has been raised. + * This implementation + * simply calls stopListening. + * This method may be overriden by subclasses. + * + * @param exception the exception raised. + */ + protected synchronized void listeningException(Throwable exception) + { + setChanged(); + notifyObservers(LISTENING_EXCEPTION); + stopListening(); + } + + /** + * This method is called when the server stops accepting + * connections for any reason. This method may be overriden by + * subclasses. + */ + synchronized protected void serverStopped() + { + setChanged(); + notifyObservers(SERVER_STOPPED); + } + + /** + * This method is called when the server is closed. + * This method may be overriden by subclasses. + */ + synchronized protected void serverClosed() + { + setChanged(); + notifyObservers(SERVER_CLOSED); + } + + /** + * This method is called when the server starts listening for + * connections. The method may be overridden by subclasses. + */ + protected synchronized void serverStarted() + { + setChanged(); + notifyObservers(SERVER_STARTED); + } + + /** + * This method is used to handle messages coming from the client. + * Observers are notfied by receiveing the transmitted message. + * Note that, in this implementation, the information concerning + * the client that sent the message is lost. + * It can be overriden, but is still expected to call notifyObservers(). + * + * @param message The message received from the client. + * @param client The connection to the client. + * @see ocsf.server.ObservableOriginatorServer + */ + protected synchronized void handleMessageFromClient + (Object message, ConnectionToClient client) + { + setChanged(); + notifyObservers(message); + } +} diff --git a/code/simplechat1/ocsf/server/OriginatorMessage.java b/code/simplechat1/ocsf/server/OriginatorMessage.java new file mode 100644 index 0000000..a25d2b4 --- /dev/null +++ b/code/simplechat1/ocsf/server/OriginatorMessage.java @@ -0,0 +1,61 @@ +// This file contains material supporting the textbook: +// "Object Oriented Software Engineering" and is issued under the open-source +// license found at www.lloseng.com + +package ocsf.server; + +/** + * A message class used by the Observable layer of the OCSF in order to conserve + * information about the originator of a message. + * + * @author Dr. Robert Laganière + * @version July 2001 + */ +public class OriginatorMessage +{ + /** + * The connection that originated the message + */ + private ConnectionToClient originator; + + /** + * The message. + */ + private Object message; + +// Constructor *************************************************************** + + /** + * Constructs an instance of an OriginatorMessage + * + * @param originator The client who created this message + * @param message The contents of the message + */ + public OriginatorMessage(ConnectionToClient originator, Object message) + { + this.originator = originator; + this.message = message; + } + +// Accessor methods ********************************************************* + + /** + * Returns the originating connection. + * + * @return The connection from which the message originated. + */ + public ConnectionToClient getOriginator() + { + return originator; + } + + /** + * Returns the message's contents. + * + * @return The content of the message. + */ + public Object getMessage() + { + return message; + } +} From 8efdd8a201e36ac2ed90f3da102a47815dfc13f2 Mon Sep 17 00:00:00 2001 From: ielmie <65829854+ielmie@users.noreply.github.com> Date: Fri, 29 May 2020 16:48:11 -0400 Subject: [PATCH 2/6] Question 6 changes Added the command functionnalities to ChatClient and EchoServer and created ServerConsole.java --- code/simplechat1/ClientConsole.java | 13 ++- code/simplechat1/EchoServer.java | 118 ++++++++++++++++++++++- code/simplechat1/ServerConsole.java | 114 ++++++++++++++++++++++ code/simplechat1/client/ChatClient.java | 122 +++++++++++++++++++++--- 4 files changed, 353 insertions(+), 14 deletions(-) create mode 100644 code/simplechat1/ServerConsole.java diff --git a/code/simplechat1/ClientConsole.java b/code/simplechat1/ClientConsole.java index 2706d7f..069a018 100644 --- a/code/simplechat1/ClientConsole.java +++ b/code/simplechat1/ClientConsole.java @@ -91,7 +91,18 @@ public void accept() */ public void display(String message) { - System.out.println("> " + message); + //For a message coming from the server to not have a > prepended + try{ + if (message.charAt(10)=='>'){ + System.out.println(message); + } + else{ + System.out.println("> " + message); + } + } + catch(IndexOutOfBoundsException e){ + System.out.println("> " + message); + } } diff --git a/code/simplechat1/EchoServer.java b/code/simplechat1/EchoServer.java index b734e31..bc28c52 100644 --- a/code/simplechat1/EchoServer.java +++ b/code/simplechat1/EchoServer.java @@ -2,6 +2,7 @@ // "Object Oriented Software Engineering" and is issued under the open-source // license found at www.lloseng.com +import common.*; import java.io.*; import ocsf.server.*; @@ -24,6 +25,7 @@ public class EchoServer extends AbstractServer */ final public static int DEFAULT_PORT = 5555; + //Constructors **************************************************** /** @@ -34,6 +36,7 @@ public class EchoServer extends AbstractServer public EchoServer(int port) { super(port); + } @@ -48,6 +51,8 @@ public EchoServer(int port) * @param client the client that raised the exception. * @param Throwable the exception thrown. */ + + //when an exception is thrown, it calls the clientDisconnected hook method to print the appropriate message. synchronized protected void clientException( ConnectionToClient client, Throwable exception) { clientDisconnected(client); @@ -58,6 +63,8 @@ synchronized protected void clientException( * accepted. The default implementation does nothing. * @param client the connection connected to the client. */ + + //prints a message when the client logs on. protected void clientConnected(ConnectionToClient client) { System.out.println("Client has logged on"); } @@ -69,6 +76,8 @@ protected void clientConnected(ConnectionToClient client) { * * @param client the connection with the client. */ + + //prints a message when the client logs off synchronized protected void clientDisconnected(ConnectionToClient client) { System.out.println("Client has logged off"); } @@ -104,7 +113,114 @@ protected void serverStarted() protected void serverStopped() { System.out.println - ("Server has stopped listening for connections."); + ("Server has stopped listening for new connections."); + } + + /** + * Hook method called when the server stops accepting + * connections because an exception has been raised. + * The default implementation does nothing. + * This method may be overriden by subclasses. + * + * @param exception the exception raised. + */ + protected void listeningException(Throwable exception) { + } + + + /** + * Hook method called when the server is clased. + * The default implementation does nothing. This method may be + * overriden by subclasses. When the server is closed while still + * listening, serverStopped() will also be called. + */ + protected void serverClosed(){ + System.out.println + ("Server has closed all connections."); } + + public void commandHelperMethod(String message){ + + //seperates the command from the arguments (if pertinent - for #sethost and #setport) + String[] argumentsArray = message.split(" "); + + switch(argumentsArray[0]){ + + case "#quit": //calls the quit method to logoff without having to use ctrl+c + try{ + close(); + } + catch(IOException e){ + + } + System.out.print("Shutting down server"); + System.exit(0); + break; + + case "#stop": + stopListening(); + break; + + case "#close": + try{ + close(); + } + catch(IOException e){ + + } + break; + + case "#setport": //allows the user to change the port (only available when not connected to a server) + if(!isListening()&&getNumberOfClients()==0){ + try{ + setPort(Integer.parseInt(argumentsArray[1])); + } + catch(ArrayIndexOutOfBoundsException e){ + System.out.println("Port number not specified. Please use the following format: #setport "); + } + } + else{ + System.out.println("The server is currently open. You must first close the server using #close"); + } + break; + + case "#start": + try{ + listen(); + } + catch(IOException e){ + + } + break; + + case "#getport": // prints the port number + System.out.println("The port number is: "+Integer.toString(getPort())); + break; + + default: //if someone typed the wrong command they would get an error message and a list of accepted commands + System.out.println("This is not a recognised command"); + System.out.println("Please use one of the following:"); + System.out.println("#quit, #stop, #close, #setport, #start or #getport"); + break; + } + + } + + /** + * This method handles all data coming from the UI + * + * @param message The message from the UI. + */ + public void handleMessageFromServerUI(String message) + { + //Checks if the message is a command and redirects it to the helper method + if(message.charAt(0)=='#'){ + commandHelperMethod(message); + } + else{ + sendToAllClients("SERVER MSG> "+message); + //makes the messages comming from the server begin with 'SERVER MSG>' + System.out.println("SERVER MSG> " + message); + } } //Class methods *************************************************** diff --git a/code/simplechat1/ServerConsole.java b/code/simplechat1/ServerConsole.java new file mode 100644 index 0000000..5987aa5 --- /dev/null +++ b/code/simplechat1/ServerConsole.java @@ -0,0 +1,114 @@ +import java.io.*; +import common.*; + +/** + * This class constructs the UI for a server. It implements the + * chat interface in order to activate the display() method. +*/ + +public class ServerConsole implements ChatIF +{ + //Class variables ************************************************* + + /** + * The default port to connect on. + */ + final public static int DEFAULT_PORT = 5555; + + //Instance variables ********************************************** + + /** + * The instance of the Server that created this ConsoleChat. + */ + EchoServer server; + + + //Constructors **************************************************** + + /** + * Constructs an instance of the ServerConsole UI. + * + * @param host The host to connect to. + * @param port The port to connect on. + */ + public ServerConsole(int port) + { + server= new EchoServer(port); + try + { + server.listen(); //Start listening for connections + } + catch (Exception ex) + { + System.out.println("ERROR - Could not listen for clients!"); + } + + } + + + //Instance methods ************************************************ + + /** + * This method waits for input from the console. Once it is + * received, it sends it to the client's message handler. + */ + public void accept() + { + try + { + BufferedReader fromConsole = + new BufferedReader(new InputStreamReader(System.in)); + String message; + + while (true) + { + message = fromConsole.readLine(); + server.handleMessageFromServerUI(message); + } + } + catch (Exception ex) + { + System.out.println + ("Unexpected error while reading from console!"); + } + } + + /** + * This method overrides the method in the ChatIF interface. It + * displays a message onto the screen. + * + * @param message The string to be displayed. + */ + public void display(String message) + { + //makes the messages comming from the server begin with 'SERVER MSG>' + System.out.println("SERVER MSG> " + message); + } + + + //Class methods *************************************************** + + /** + * This method is responsible for the creation of the Server UI. + * + * @param args[0] The host to connect to. + */ + public static void main(String[] args) + { + String host = ""; + int port = 0; //The port number + + try + { + port = Integer.valueOf(args[0]); + } + //If there's no 1st argument, it will use the DEFAULT_PORT + catch(ArrayIndexOutOfBoundsException e) + { + port = DEFAULT_PORT; + } + ServerConsole chat= new ServerConsole(port); //will use the port variable instead of DEFAULT_PORT + chat.accept(); //Wait for console data + } +} +//End of ConsoleChat class diff --git a/code/simplechat1/client/ChatClient.java b/code/simplechat1/client/ChatClient.java index fa2ee50..d46551b 100644 --- a/code/simplechat1/client/ChatClient.java +++ b/code/simplechat1/client/ChatClient.java @@ -65,8 +65,11 @@ public void handleMessageFromServer(Object msg) * perform special processing such as cleaning up and terminating, or * attempting to reconnect. */ + + //cleanup method called whenever the user disconnects from the server. + //It prints a message telling the user so protected void connectionClosed() { - System.out.println("The connection to the server is closed"); + System.out.println("You have logged off from the server."); } /** @@ -77,10 +80,99 @@ protected void connectionClosed() { * @param exception * the exception raised. */ + + //When an exception is raised, it tells the user that they are no longer connected to the server + //then it closes the connection to the server formally + //without quitting (so that the user could log back on if they so chose protected void connectionException(Exception exception) { - quit(); + System.out.println("Connection to server terminated"); + try{closeConnection(); } + catch(IOException e) {} + } + + + /** + * + *This method handles the case when a user enters a string starting with a # + *It parses the message to see what command it was then it executes said command + * + * @param message The message from the UI. + */ + + public void commandHelperMethod(String message){ + + //seperates the command from the arguments (if pertinent - for #sethost and #setport) + String[] argumentsArray = message.split(" "); + + switch(argumentsArray[0]){ + + case "#quit": //calls the quit method to logoff without having to use ctrl+c + quit(); + break; + + case "#logoff": //allows the user to logoff from the server without exiting completely + try{closeConnection(); } + catch(IOException e) {} + break; + + case "#sethost": //allows the user to change the host (only available when not connected to a server) + if(!isConnected()){ + try{ + setHost(argumentsArray[1]); + } + catch(ArrayIndexOutOfBoundsException e){ + System.out.println("Host name not specified. Please use the following format: #sethost "); + } + } + else{ + System.out.println("You are currently connected to a server. You must first #logoff to change hosts"); + } + break; + + case "#setport": //allows the user to change the port (only available when not connected to a server) + if(!isConnected()){ + try{ + setPort(Integer.parseInt(argumentsArray[1])); + } + catch(ArrayIndexOutOfBoundsException e){ + System.out.println("Port number not specified. Please use the following format: #setport "); + } + } + else{ + System.out.println("You are currently connected to a server. You must first #logoff to change ports"); + } + break; + + case "#login": //allows the user to log into a server (cannot be used when already connected) + if(!isConnected()){ + try{openConnection(); } + catch(IOException e) {} + + } + else{ + System.out.println("You are already connected to a server."); + } + break; + + case "#gethost": //prints the host name + System.out.println("The host name is: "+getHost()); + break; + + case "#getport": // prints the port number + System.out.println("The port number is: "+Integer.toString(getPort())); + break; + + default: //if someone typed the wrong command they would get an error message and a list of accepted commands + System.out.println("This is not a recognised command"); + System.out.println("Please use one of the following:"); + System.out.println("#quit, #logoff, #sethost, #setport, #login, #gethost or #getport"); + break; + } + } + + /** * This method handles all data coming from the UI * @@ -88,16 +180,22 @@ protected void connectionException(Exception exception) { */ public void handleMessageFromClientUI(String message) { - try - { - sendToServer(message); - } - catch(IOException e) - { - clientUI.display - ("Could not send message to server. Terminating client."); - quit(); - } + //Checks if the message is a command and redirects it to the helper method + if(message.charAt(0)=='#'){ + commandHelperMethod(message); + } + else{ + try + { + sendToServer(message); + } + catch(IOException e) + { + clientUI.display + ("Could not send message to server. Terminating client."); + quit(); + } + } } /** From a5dee50f252be1f5b76b517b5fc3731466f43f7d Mon Sep 17 00:00:00 2001 From: ielmie <65829854+ielmie@users.noreply.github.com> Date: Sat, 30 May 2020 22:15:57 -0400 Subject: [PATCH 3/6] Final Version The Changes made were to ChatClient.java, ClientConsole.java and EchoServer.java. ServerConsole.java was written by modifying ClientConsole.java to allow the server to interact with the command line. All changes made to these files were made in order to add the functionnalities depicted in the layout for SEG2105 - assignment 1. --- code/simplechat1/ClientConsole.java | 33 +++++-- code/simplechat1/EchoServer.java | 113 ++++++++++++++++++------ code/simplechat1/ServerConsole.java | 8 +- code/simplechat1/client/ChatClient.java | 60 ++++++++++--- 4 files changed, 169 insertions(+), 45 deletions(-) diff --git a/code/simplechat1/ClientConsole.java b/code/simplechat1/ClientConsole.java index 069a018..d62d95e 100644 --- a/code/simplechat1/ClientConsole.java +++ b/code/simplechat1/ClientConsole.java @@ -41,11 +41,11 @@ public class ClientConsole implements ChatIF * @param host The host to connect to. * @param port The port to connect on. */ - public ClientConsole(String host, int port) + public ClientConsole(String clientId, String host, int port) { try { - client= new ChatClient(host, port, this); + client= new ChatClient(clientId, host, port, this); } catch(IOException exception) { @@ -117,21 +117,39 @@ public static void main(String[] args) { String host = ""; int port = 0; //The port number - + String clientId = ""; //The user's loginId + + + //Question 7a + //Assigns the first argument as the loginId + try { + clientId=args[0]; + } + //If no loginId is provided an error message is printed and the user is disconnected + catch(ArrayIndexOutOfBoundsException e0){ + System.out.println("Cannot connect to server without login Id."); + System.exit(0); + } + try { - host = args[0]; + //Question 7 a + //changed to second arg since adding clientId + host = args[1]; } catch(ArrayIndexOutOfBoundsException e1) { host = "localhost"; } - //Q5b This try loop checks to see if there is a second argument + //Question 5b + //This try loop checks to see if there is a second argument //If that's the case, it will assign it as the port number try { - port = Integer.valueOf(args[1]); + //Question 7 a + //changed to third arg since adding clientId + port = Integer.valueOf(args[2]); } //If there's no 2nd argument, it will use the DEFAULT_PORT catch(ArrayIndexOutOfBoundsException e2) @@ -139,7 +157,8 @@ public static void main(String[] args) port = DEFAULT_PORT; } //will use the port variable defined above instead of DEFAULT_PORT - ClientConsole chat= new ClientConsole(host, port); + //added the loginId to the constructor (Question 7a) + ClientConsole chat= new ClientConsole(clientId, host, port); chat.accept(); //Wait for console data } } diff --git a/code/simplechat1/EchoServer.java b/code/simplechat1/EchoServer.java index bc28c52..0e11b6f 100644 --- a/code/simplechat1/EchoServer.java +++ b/code/simplechat1/EchoServer.java @@ -25,6 +25,7 @@ public class EchoServer extends AbstractServer */ final public static int DEFAULT_PORT = 5555; + //Constructors **************************************************** @@ -52,6 +53,7 @@ public EchoServer(int port) * @param Throwable the exception thrown. */ + //Question 5c //when an exception is thrown, it calls the clientDisconnected hook method to print the appropriate message. synchronized protected void clientException( ConnectionToClient client, Throwable exception) { @@ -64,9 +66,11 @@ synchronized protected void clientException( * @param client the connection connected to the client. */ + //Question 5c //prints a message when the client logs on. protected void clientConnected(ConnectionToClient client) { System.out.println("Client has logged on"); + } /** @@ -77,9 +81,11 @@ protected void clientConnected(ConnectionToClient client) { * @param client the connection with the client. */ + //Question 5c //prints a message when the client logs off synchronized protected void clientDisconnected(ConnectionToClient client) { System.out.println("Client has logged off"); + } @@ -92,8 +98,59 @@ synchronized protected void clientDisconnected(ConnectionToClient client) { public void handleMessageFromClient (Object msg, ConnectionToClient client) { - System.out.println("Message received: " + msg + " from " + client); - this.sendToAllClients(msg); + //converts the message Object into a string + String message = msg.toString(); + //splits the string into words + String[] idArray = message.split(" "); + + //Question 7 c i + //This if statement recognizes the #login command + if(idArray[0].equals("#login")){ + try{ + //Question 7 iv + //Tries to get loginId, if there is none, then (#login ) is the first message + // it would then jump to the catch Exception e + String test = client.getInfo("loginId").toString(); + try{ + //An error message would be printed if the loginId already exists + client.sendToClient("Error: you have already given us a login Id"); + } + catch(IOException e){} + } + catch(Exception f){ + //Question 7ii + //identifies the client by adding the loginId to the user info hashmap. + client.setInfo("loginId", idArray[1]); + + } + } + else{ + try{ + //Tries to get loginId, if there is none, then the first message (#login ) was not recieved + // it would then jump to the catch Exception g + String test = client.getInfo("loginId").toString(); + //Question 7 c iii + //Prints message in server and sends the message out to all users with the loginId prepended. + System.out.println("Message received: " + msg + " from " + client); + this.sendToAllClients(client.getInfo("loginId").toString() + " " + msg); + } + catch(Exception g){ + //Question 7 c v + //If the loginId has not already been recieved as 1st message it prints and error message + //and closes the connection to that client. + try{ + client.sendToClient("Error: no login Id provided by the system"); + } + catch(IOException h){} + finally{ + try{ + client.close(); + } + catch(IOException i){} + } + } + } + } /** @@ -115,17 +172,6 @@ protected void serverStopped() System.out.println ("Server has stopped listening for new connections."); } - - /** - * Hook method called when the server stops accepting - * connections because an exception has been raised. - * The default implementation does nothing. - * This method may be overriden by subclasses. - * - * @param exception the exception raised. - */ - protected void listeningException(Throwable exception) { - } /** @@ -138,14 +184,26 @@ protected void serverClosed(){ System.out.println ("Server has closed all connections."); } + + /** + * + *This method handles the case when a user enters a string starting with a # + *It parses the message to see what command it was then it executes said command + * + * @param message The message from the UI. + */ + + //Question 6 c + //Method that recieves a message that begins with # (a command) + //and parses which command was issued and what to do public void commandHelperMethod(String message){ - //seperates the command from the arguments (if pertinent - for #sethost and #setport) + //seperates the command from the arguments (if pertinent - for #setport) String[] argumentsArray = message.split(" "); switch(argumentsArray[0]){ - - case "#quit": //calls the quit method to logoff without having to use ctrl+c + //Question 6 c i + case "#quit": //closes the server then quits the system try{ close(); } @@ -155,12 +213,12 @@ public void commandHelperMethod(String message){ System.out.print("Shutting down server"); System.exit(0); break; - - case "#stop": + //Question 6 c ii + case "#stop": //stops listening for new clients stopListening(); break; - - case "#close": + //Question 6 c iii + case "#close": //closes the server (stops listening + kicks the current users off) try{ close(); } @@ -168,7 +226,7 @@ public void commandHelperMethod(String message){ } break; - + //Question 6 c iv case "#setport": //allows the user to change the port (only available when not connected to a server) if(!isListening()&&getNumberOfClients()==0){ try{ @@ -182,8 +240,8 @@ public void commandHelperMethod(String message){ System.out.println("The server is currently open. You must first close the server using #close"); } break; - - case "#start": + //Question 6 c v + case "#start": //opens the server try{ listen(); } @@ -191,7 +249,7 @@ public void commandHelperMethod(String message){ } break; - + //Question 6 c vi case "#getport": // prints the port number System.out.println("The port number is: "+Integer.toString(getPort())); break; @@ -210,6 +268,8 @@ public void commandHelperMethod(String message){ * * @param message The message from the UI. */ + + public void handleMessageFromServerUI(String message) { //Checks if the message is a command and redirects it to the helper method @@ -217,8 +277,11 @@ public void handleMessageFromServerUI(String message) commandHelperMethod(message); } else{ + //Question 6b ii + //makes the messages comming from the server begin with 'SERVER MSG>' + sendToAllClients("SERVER MSG> "+message); - //makes the messages comming from the server begin with 'SERVER MSG>' + System.out.println("SERVER MSG> " + message); } } diff --git a/code/simplechat1/ServerConsole.java b/code/simplechat1/ServerConsole.java index 5987aa5..226e3e2 100644 --- a/code/simplechat1/ServerConsole.java +++ b/code/simplechat1/ServerConsole.java @@ -1,3 +1,8 @@ +//Code written for Question 6b. Creates a ServerConsole which implements EchoServer +//And allows it to communicate with the other users + + + import java.io.*; import common.*; @@ -81,7 +86,8 @@ public void accept() */ public void display(String message) { - //makes the messages comming from the server begin with 'SERVER MSG>' + //I don't actually need to call this method in EchoServer but it is implemented for future use + //makes the messages comming from the server begin with 'SERVER MSG>' System.out.println("SERVER MSG> " + message); } diff --git a/code/simplechat1/client/ChatClient.java b/code/simplechat1/client/ChatClient.java index d46551b..ee5cc65 100644 --- a/code/simplechat1/client/ChatClient.java +++ b/code/simplechat1/client/ChatClient.java @@ -26,6 +26,9 @@ public class ChatClient extends AbstractClient * the display method in the client. */ ChatIF clientUI; + //Question 7a + //Created a loginId variable to store the user's loginId + String loginId; //Constructors **************************************************** @@ -38,11 +41,15 @@ public class ChatClient extends AbstractClient * @param clientUI The interface type variable. */ - public ChatClient(String host, int port, ChatIF clientUI) + //Question 7 a + //the login Id is added as a parameter to the constructor + + public ChatClient(String loginId, String host, int port, ChatIF clientUI) throws IOException { - super(host, port); //Call the superclass constructor + super(host, port); //Call the superclass constructor this.clientUI = clientUI; + this.loginId = loginId; openConnection(); } @@ -57,7 +64,26 @@ public ChatClient(String host, int port, ChatIF clientUI) public void handleMessageFromServer(Object msg) { clientUI.display(msg.toString()); - } + } + + /** + * Hook method called after a connection has been established. The default + * implementation does nothing. It may be overridden by subclasses to do + * anything they wish. + */ + + //Question 7 b + //sends message to server with login Id + + protected void connectionEstablished() { + + try{ + sendToServer("#login "+ loginId); + } + catch(IOException e){ + + } + } /** * Hook method called after the connection has been closed. The default @@ -66,6 +92,7 @@ public void handleMessageFromServer(Object msg) * attempting to reconnect. */ + //Question 5 a //cleanup method called whenever the user disconnects from the server. //It prints a message telling the user so protected void connectionClosed() { @@ -81,12 +108,13 @@ protected void connectionClosed() { * the exception raised. */ + //Question 5a //When an exception is raised, it tells the user that they are no longer connected to the server //then it closes the connection to the server formally //without quitting (so that the user could log back on if they so chose protected void connectionException(Exception exception) { System.out.println("Connection to server terminated"); - try{closeConnection(); } + try{closeConnection();} catch(IOException e) {} } @@ -98,7 +126,11 @@ protected void connectionException(Exception exception) { * * @param message The message from the UI. */ - + + //Question 6 a + //Method that recieves a message that begins with # (a command) + //and parses which command was issued and what to do + public void commandHelperMethod(String message){ //seperates the command from the arguments (if pertinent - for #sethost and #setport) @@ -106,15 +138,16 @@ public void commandHelperMethod(String message){ switch(argumentsArray[0]){ + //Question 6a i case "#quit": //calls the quit method to logoff without having to use ctrl+c quit(); break; - + //Question 6a ii case "#logoff": //allows the user to logoff from the server without exiting completely try{closeConnection(); } catch(IOException e) {} break; - + //Question 6a iii case "#sethost": //allows the user to change the host (only available when not connected to a server) if(!isConnected()){ try{ @@ -128,7 +161,7 @@ public void commandHelperMethod(String message){ System.out.println("You are currently connected to a server. You must first #logoff to change hosts"); } break; - + //Question 6a iv case "#setport": //allows the user to change the port (only available when not connected to a server) if(!isConnected()){ try{ @@ -142,10 +175,12 @@ public void commandHelperMethod(String message){ System.out.println("You are currently connected to a server. You must first #logoff to change ports"); } break; - + //Question 6a v case "#login": //allows the user to log into a server (cannot be used when already connected) if(!isConnected()){ - try{openConnection(); } + try{ + openConnection(); + } catch(IOException e) {} } @@ -153,11 +188,11 @@ public void commandHelperMethod(String message){ System.out.println("You are already connected to a server."); } break; - + //Question 6a vi case "#gethost": //prints the host name System.out.println("The host name is: "+getHost()); break; - + //Question 6a v case "#getport": // prints the port number System.out.println("The port number is: "+Integer.toString(getPort())); break; @@ -180,6 +215,7 @@ public void commandHelperMethod(String message){ */ public void handleMessageFromClientUI(String message) { + //Question 6a //Checks if the message is a command and redirects it to the helper method if(message.charAt(0)=='#'){ commandHelperMethod(message); From f9afe19e1112b020e4d8d35a1efcf248c19ee0c1 Mon Sep 17 00:00:00 2001 From: ielmie <65829854+ielmie@users.noreply.github.com> Date: Sun, 31 May 2020 19:48:30 -0400 Subject: [PATCH 4/6] Actual Final Edit --- code/simplechat1/ClientConsole.java | 5 ++--- code/simplechat1/EchoServer.java | 14 +++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/code/simplechat1/ClientConsole.java b/code/simplechat1/ClientConsole.java index d62d95e..5da272b 100644 --- a/code/simplechat1/ClientConsole.java +++ b/code/simplechat1/ClientConsole.java @@ -49,9 +49,8 @@ public ClientConsole(String clientId, String host, int port) } catch(IOException exception) { - System.out.println("Error: Can't setup connection!" - + " Terminating client."); - System.exit(1); + System.out.println("Cannot open connection." + + " Awaiting command."); } } diff --git a/code/simplechat1/EchoServer.java b/code/simplechat1/EchoServer.java index 0e11b6f..9554ace 100644 --- a/code/simplechat1/EchoServer.java +++ b/code/simplechat1/EchoServer.java @@ -2,7 +2,6 @@ // "Object Oriented Software Engineering" and is issued under the open-source // license found at www.lloseng.com -import common.*; import java.io.*; import ocsf.server.*; @@ -69,8 +68,7 @@ synchronized protected void clientException( //Question 5c //prints a message when the client logs on. protected void clientConnected(ConnectionToClient client) { - System.out.println("Client has logged on"); - + System.out.println("A new client is attempting to connect to the server."); } /** @@ -83,8 +81,10 @@ protected void clientConnected(ConnectionToClient client) { //Question 5c //prints a message when the client logs off + //changed to comply with the testcases synchronized protected void clientDisconnected(ConnectionToClient client) { - System.out.println("Client has logged off"); + this.sendToAllClients(client.getInfo("loginId").toString() + " has logged off "); + System.out.println(client.getInfo("loginId").toString()+" has logged off"); } @@ -121,6 +121,10 @@ synchronized protected void clientDisconnected(ConnectionToClient client) { //Question 7ii //identifies the client by adding the loginId to the user info hashmap. client.setInfo("loginId", idArray[1]); + //Question 5c + //Message that tells all users when someone logs onto the server + this.sendToAllClients(client.getInfo("loginId").toString() + " has logged on "); + System.out.println(client.getInfo("loginId").toString()+" has logged on"); } } @@ -131,7 +135,7 @@ synchronized protected void clientDisconnected(ConnectionToClient client) { String test = client.getInfo("loginId").toString(); //Question 7 c iii //Prints message in server and sends the message out to all users with the loginId prepended. - System.out.println("Message received: " + msg + " from " + client); + System.out.println("Message received: " + msg + " from " + client.getInfo("loginId").toString()); this.sendToAllClients(client.getInfo("loginId").toString() + " " + msg); } catch(Exception g){ From 7ec12edf4a68841e19f24027e5cbe6f97e65ca63 Mon Sep 17 00:00:00 2001 From: ielmie <65829854+ielmie@users.noreply.github.com> Date: Sun, 31 May 2020 20:35:25 -0400 Subject: [PATCH 5/6] Create Testcases_Fortin_6338858.docx --- code/Testcases_Fortin_6338858.docx | Bin 0 -> 278232 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 code/Testcases_Fortin_6338858.docx diff --git a/code/Testcases_Fortin_6338858.docx b/code/Testcases_Fortin_6338858.docx new file mode 100644 index 0000000000000000000000000000000000000000..1eb987a31692bb4f170c4663172ed4938f13f867 GIT binary patch literal 278232 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

MleM^dy5phhjj{Jt{|LV`IydB3r(qtD4 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

(48T) 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 Date: Sun, 31 May 2020 20:36:52 -0400 Subject: [PATCH 6/6] Update Testcases_Fortin_6338858.docx --- code/Testcases_Fortin_6338858.docx | Bin 278232 -> 278188 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/code/Testcases_Fortin_6338858.docx b/code/Testcases_Fortin_6338858.docx index 1eb987a31692bb4f170c4663172ed4938f13f867..e6b7f1760ea969eb2a34ed6a8afbb72392e03706 100644 GIT binary patch delta 9647 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 delta 9593 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