Server.
py
import socket
import threading
# Function to handle client connections
def handle_client(client_socket, clients):
while True:
try:
# Receive message from the client
message = client_socket.recv(1024).decode('utf-8')
if message:
print(f"Received: {message}")
broadcast_message(message, client_socket, clients)
else:
remove_client(client_socket, clients)
break
except:
continue
# Function to broadcast message to all clients
def broadcast_message(message, client_socket,clients):
for client in clients:
if client != client_socket:
try:
[Link]([Link]('utf-8'))
except:
remove_client(client, clients)
# Function to remove disconnected client
def remove_client(client_socket, clients):
if client_socket in clients:
[Link](client_socket)
client_socket.close()
# Main function to run the server
def start_server():
server = [Link](socket.AF_INET,socket.SOCK_STREAM)
[Link](('[Link]', 5555))
[Link](5)
print("Server started. Waiting for connections...")
clients = []
while True:
client_socket, client_address = [Link]()
print(f"Connection established with {client_address}")
[Link](client_socket)
[Link](target=handle_client,args=(client_socket,
clients)).start()
if __name__ == "__main__":
start_server()
[Link]
import socket
import threading
# Function to receive messages from the server
def receive_messages(client_socket):
while True:
try:
message = client_socket.recv(1024).decode('utf-8')
if message:
print(f"\n{message}")
else:
break
except:
break
# Main function for client
def start_client():
client = [Link](socket.AF_INET, socket.SOCK_STREAM)
server_ip = input("Enter server IP address: ")
[Link]((server_ip, 5555))
print("Connected to the server!")
[Link](target=receive_messages, args=(client,)).start()
while True:
message = input()
[Link]([Link]('utf-8'))
if __name__ == "__main__":
start_client()