Skip to content

hothbert/CS3524-ClientServerChat

Repository files navigation

GroupC-CS3524-Ass

Distributed Systems and Security Assessment | Thursday 10am Group C

Install, Setup and Run Instructions

  1. Open the project in IntelliJ IDEA.
  2. Start the 'startServer' file.
  3. Start the 'startClient' file (as many times as required).

If IntelliJ doesn't allow you to run multiple clients:

  • Right click on startClient and press run.
  • Run > Edit Configurations > Application > startClient.
  • Modify Options > Allow multiple instances > Apply > Okay.

Code Structure

alt text

client

ChatClient:

  • This is the client class which sends messages to ChatServer and receives a response.
  • Based on Practical Exercises 3 and 4, but expanded upon for assignment purposes.

startClient

  • Run this to start the client application, but remember to start the server first.

server

ChatLanguage

  • The ChatLanguage class verifies if the first word of a user message is in the list of valid commands, then executes the corresponding function.

ChatServer

  • This is the server class which receives messages from ChatClient and sends messages back through a socket connection.
  • Everytime a new client joins, a UserController thread is started.
  • Based on Practical Exercise 4, but expanded upon for assignment purposes.

ConnectionPool

  • This stores all users that are currently in the chat, and broadcasts messages between them.
  • Also handles subscription and group functions.
  • Is based on the class of same name from practical 4, but developed further.

startServer

  • Run this to start the server application.

UserController

  • This class controls the individual users of the chat server and their messages.
  • Is based on the class ChatServerHandler from practical 4, but developed further.

shared

Message

  • This defines message objects.
  • Is based on the class of the same name from Practical 4.

About

Distributed Systems and Security Assessment | Thursday 10am Group C

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages