Chatting Application With Multi Threading Enabled

RAJNISH MISHRA
2 min readMar 24, 2021

In this article we will see how we can create a chat application with multi threading enabled. We will be using python as language to create the chat application.

server.py

import socketimport threadingimport time# IPV4
address_family = socket.AF_INET
# UDP
protocol = socket.SOCK_DGRAM
# socketip = '127.0.0.1'
port = 5000
server_socket = socket.socket(address_family, protocol)# bindserver_socket.bind((ip, port))# send and receive functiondef send_msg(address):
data = input("Server: ").encode()
if len(data) < 0:
return
server_socket.sendto(data, address)
def receive_msg():
while True:
message, address = server_socket.recvfrom(1024)
message = message.decode()
print(f"{address[0]} : {message}")

data = input("Server: ").encode()

if len(data) < 0:
return
server_socket.sendto(data, address)
# send and recv messagethreading.Thread(target=receive_msg).start()
# time.sleep(20)
# threading.Thread(target=send_msg,args=(address,)).start()

This will be server program. Any client can chat with server.

client.py

import socketimport threadingimport time# IPV4
address_family = socket.AF_INET
# UDP
protocol = socket.SOCK_DGRAM
# socketserver_ip = '127.0.0.1'
server_port = 5000
client_socket = socket.socket(address_family, protocol)server_address = (server_ip,server_port)# send and receive functiondef send_msg():

while True:

data = input("Me: ").encode()
if len(data) < 0:
return
client_socket.sendto(data, server_address)
time.sleep(5)
def receive_msg():
time.sleep(10)
while True:

message, address = client_socket.recvfrom(1024)

message = message.decode()
print(f"Server : {message}")
# send and recv messagethreading.Thread(target=send_msg).start()threading.Thread(target=receive_msg).start()

Output

server

client 1

client 2

overall

I haven’t explained much in this program as there wasn’t much to show. You can find the code on github link below.

--

--