- Low latency (with multi-threading and multi-processing)
- RSA and AES encryption for messaging
- Multi-client instant voice chat
- Support for adding friends and offline messaging
- Software Dependence
- MySQL
- Python Package Dependence
- Python Driver for MySQL (Connector/Python), PyQt5, rsa, cryptography, pyaudio.
-
Create two datebase in MySQL
login_data
andmessage_data
as the following image shows. -
Configure the username and password of MySQL in
IM_server.py
, and configure the server IP and port inIM_server.py
andClient.py
. -
(Optional) Configure
VOICEPORT
for voise transmission inrecv_voice.py
andsend_voice.py
. -
(Optional) Configure
RECV_PORT
andSEND_PORT
for file transmission infile_transfer.py
.
- Start server in a machine with a public IP address:
python IM_server.py
. - Start clients in user PC:
python IM_client.py
. - Have fun!