-
Introduction
This program allows sending messages between 2 or more clients. Messages are redirected and managed by a server.
The key features are (see section 8 for full description): sending messages to multiple users; hidden passwords; multiple registration login not allowed; one client console login allowed; self-messaging; create users while server is running.
-
Compiling Requirements
- gcc - version supporting standard gnu99
- make
- unix like operating system
- write access
- doxygen (just for documentation)
- graphviz (just for documentation)
-
How to Install
- git clone https://github.com/kabell/SMSsystem.git
- cd SMSsystem
- make
- make docs
-
How to Uninstall
- make clean
-
How to run the client/server application
-
Run server:
./server
-
Register users if they are not registered yet.
./server adduser username
username is login for user.
Then, you are asked to input the user's password and confirmed the password. If the two passwords are the
same, the user will be added to the server. You can add users while the server is running.
-
Run as many clients as you want (limited by server capacity in server.c, which is 1000 users)
./client username
The username is stored in the server, which must be registered before using it in the server.
You have 3 attempts to type the password. After the third wrong attempt the program will end.
-
-
How to use the cilent/server application
-
Make sure that server is running
-
When you log in as a client you have 3 options that describes what you can do:
When you press:
- 1 - You will see all users, which are actualy logged in;
- 2 - You can send message to yourself or logged users (For more information check 7.a);
- 3 - You will be logged out and the program will quit.
-
To quit the server simply press 'q'+enter Server will log out all users and then quit
-
-
Features
-
You can send message to more than one user. Type logins of users and separate them by a space.
For example:
- Shell: Message send to(write username):
- User: login1 login2 login3
-
If you send a message to offline/unknown user message is ignored and it is not delivered.
-
Hidden passwords. When user type a password to log in, you can not see how many characters his/her password has. This is for safety reasons.
-
Multiple registration login not allowed. You can not register user with the same login and different password. Each user has a unique login.
-
One client console login allowed. You can not log in the same user to more than one console. Like real SMS system (You do not have 2 sim cards for one number)
-
-
Restrictions:
-
You can use only alphanumeric characters for username or password
-
You can use all characters for messages except | (pipe)
-
-
Flow Diagram