A simple Chatroom using
Java Socket Programming
A simple Chatroom which uses Java Socket Programming
to manage multiple clients inside a server, allowing them to
interact with each other, and allowing the server administrator to manage the chatroom and its clients.
To open the chatroom, you must first turn on the server by running ChatServer
.
Then, each client can enter the chatroom by running the ChatClientCLI
and signing up or logging into an account.
Multiple clients can join the server and start chatting with each other.
NOTE: To open multiple clients from the save system, you must configure Intellij Idea
to "Allow Multiple Instances" of a file to be runned at the same time.
Each client can create their own personal account with a unique username and a password, and they can log back into their account after they leave.
NOTE: Clients cannot enter an account if the account is already online in the server.
All messages exchanged in the chatroom are saved so that when a new user enters the chatroom, or the server is turned off & on, the message history can be accessed.
Clients can send a private message to each other users using the command /message username 'message to be sent'
.
They can also send a private message to the Server Administrator by using the
command /message admin 'message to be sent'
.
Private messages won't be shown to other users, and won't be saved into the log files.
The Server Administrator has the ability to create a poll with multiple options inside the chatroom for the users to vote to.
The Server Administrator has the ability to kick out or ban any users that don't follow the chatroom rules.
Both the Server Administrator and the clients have access to a variety of commands to help them do what they want.
Here's a list of available Admin Commands:
Admin Commands
/help
=> To see a list of available commands
/log
=> To see a list of all messages
/log -s address
=> To save all messages in a specific address inside the system
/log -c
=> To clear the message history
/members
=> To see a list of all chatroom members
/members -o
=> To see a list of all online chatroom members
/message username 'Your Message'
=> To send a private message to a user
/message all 'Your Message'
=> To send a message to everyone in the Chatroom
/kick username
=> To kick a user from the chatroom temporarily
/ban username
=> To ban a user from entering the chatroom forever
/ban username -u
=> To unban a banned user
/poll -create -t {Your Title Here} -o {First Option} -o {Second Option} ... -uname uniqueName
/poll -show uniqueName
/poll -show pollID
/poll -show-all
/poll -show-all-details
/poll -end uniqueName
/poll -end pollID
=> To create or see Chatroom Polls
/shutdown
=> To close and shutdown the serverAnd here are the Commands available to the Clients:
Client Commands
/help
=> To see a list of available commands
/message username 'Your Message'
=> To send a private message to a user
/message admin 'Your Message'
=> To send a private message to the server administer
/poll -join uniqueName -v optionIndex
/poll -show uniqueName
/poll -show pollID
/poll -show-all
/poll -show-all-details
=> To join or see Chatroom Polls
/exit
=> To exit the chatroom
This chatroom was developed by the Cein Company.
Cein (Computer Engineers In Noshirvani) is a company formed by a team of developers inside the Babol Noshirvani University of Technology (NIT or BNUT) to help each other in learning and developing interesting projects.
We would appreciate any comments or thoughts that would help us improve our program. And if you encounter any issues while using the Chatroom, we would be more than happy to be informed about it.