- Threading
pip3 install threading - Socket
pip3 install socket - Os
pip3 install os - Sys
pip3 install sys - Hashlib
pip3 install hashlib - Crypto
pip3 install Crypto - Time
pip3 install time - Base64
pip3 install bas64 - Sqlite3
pip3 install sqlite3 - JSON
pip3 install json - Random
pip3 install random - Subprocess
pip3 install subprocess
- A automated program is executed to start desired number of Servers for the application.
python3 automate_program.py <Number of servers> - Loadbalancer program is started on specified Port number, which uniformly distributes the requests from the different different clients to different Servers accordingly.
python3 loadbalancer.py <LoadBalancerPort> - Various Clients program are started on different Port nos and all clients are binded to the Loadbalancer.
python3 client.py <clientPort> <LoadBalancerPort> - Clients can directly send to messages or any file to other clients. Clients can created or join various groups and then send messages or files to different different groups.
- All the messages and files are encrypted using Triple DES (3DES) encyrption algorithm. Keys between clients are shared using Diffie–Hellman key key exchange algorithm
Sign up <username> <rollnumber> <password>- For signing up clients for first time.Login <usernamer+rollnumber> <password>- For logging into their account.Send <Name+Rollno.> <message>- Sending message to any specific client.Send_file file_name <Name||Rollno.>-Sending File to any specific client.Send_group <No.ofgroups> <Groupno.(s)> <message>- Sending group message.Send_group_File <File_Name> <No.ofgroups> <Groupno.(s)>Sending group file.Create <Groupname>-Creating a new Group.Join <Groupname>- Joining Specific Group.Show_my_groups- Displaying groups where I am a memberList- Listing avaliable groups to join.
- Automate program to create multiple servers
- Sign Up
- Login Menu , List , Create, Join Commands
- Messages between Client to Client and Client to Groups.





