Skip to content
Snippets Groups Projects
Commit ff39fa97 authored by OUDJOUDI Mazis's avatar OUDJOUDI Mazis
Browse files

Upload New File

parent f6e6c1de
No related branches found
No related tags found
No related merge requests found
import socket
import threading
import tkinter as tk
def accept_connections():
while True:
client_socket, client_address = server_socket.accept()
clients.append(client_socket)
message = f"{client_address[0]}:{client_address[1]} connected."
chat_box.insert(tk.END, message + "\n")
broadcast(message)
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
def handle_client(client_socket):
while True:
try:
message = client_socket.recv(1024).decode()
broadcast(message)
except ConnectionResetError:
client_socket.close()
clients.remove(client_socket)
broadcast(f"Client {client_socket.getpeername()} disconnected.")
break
def broadcast(message):
for client_socket in clients:
try:
client_socket.send(message.encode())
except ConnectionResetError:
client_socket.close()
clients.remove(client_socket)
def send_message():
message = message_input.get()
broadcast("Server: " + message)
chat_box.insert(tk.END, "Server: " + message + "\n")
message_input.delete(0, tk.END)
# Create the server socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 5000))
server_socket.listen(5)
clients = []
# Create the GUI
window = tk.Tk()
window.title("Chat Server")
chat_box = tk.Text(window, height=10, width=50)
chat_box.pack()
message_input = tk.Entry(window, width=50)
message_input.pack()
send_button = tk.Button(window, text="Send", command=send_message)
send_button.pack()
# Start accepting connections in a separate thread
accept_thread = threading.Thread(target=accept_connections)
accept_thread.start()
window.mainloop()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment