Video demo: https://www.youtube.com/watch?v=OjKrU9_MJPE
A client-server messaging application allowing users on the same network connection to instantly send and receive text and file messages in real-time.
- Python 3.12
- TKinter library
- Threading
- SQLite3
- Sockets library
- GUI built with TKinter that allows users to easily interact with the application
- User authentication
- User searching and contacts management.
- Utilizing the Sockets library to enable sending text and file messages with TCP protocol
- SQLite3 Database for storing users and messages
- Multithreading to handle continuous requests on the client and server side without freezing the interface.
- Python 3.12
- server.py: Responsible for handling data, processing messages, and connecting clients
- client.py: Includes GUI logic and manages client-sided network communications
- Clone the repository by running
git clone https://github.com/Abdullahmohammadaref/messaging_application. - Run
python server.py, then open two more terminals and runpython client.pyon each one of them.
The previous steps are for running the entire application on a single machine. To allow
different devices to communicate on the same network, py server.py should be running
on any machine connected to the network, and other client machines can run py client.py.
!!IMPORTANT!!
However, the server_ip variable in the __init__ function inside the Client class in client.py for each client machine should be changed to the
private IP address of the machine that will be running the server.py file if communication will be across multiple machines.
Note: To find
The private IP address simply opens a command prompt in the machine that will
run server.py then run ipconfig. Depending on whether the machine is using
Wi-Fi or Ethernet, the private IP address will be displayed under the ”Default
Gateway” option.