Нужно написать Программу «чат» Программа клиента, Программа сервера. С интерфейсом (Элементы ввода и вывода текста использование трех кнопок, 4 label, бегунки, изображения, radio button^ check button, меню) В меню предусмотреть инструкцию пользователя Python
import socket import threading def handle_client(client_socket, address): while True: message = client_socket.recv(1024).decode('utf-8') for client in clients: if client != client_socket: client.send(message.encode('utf-8')) HOST = 'localhost' PORT = 5555 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((HOST, PORT)) server_socket.listen() clients = [] while True: client_socket, address = server_socket.accept() clients.append(client_socket) client_thread = threading.Thread(target=handle_client, args=(client_socket, address)) client_thread.start()
Обратите внимание, что это только примеры программ и не включают в себя все элементы пользовательского интерфейса, которые были вами указаны. Необходимо доработать программы с учетом интерфейса пользователя и добавить соответствующие элементы управления.
Пример программы для клиента:
import socketimport tkinter as tk
def send_message(event=None):
message = entry_msg.get()
client_socket.send(message.encode('utf-8'))
entry_msg.delete(0, tk.END)
def receive_message():
while True:
message = client_socket.recv(1024).decode('utf-8')
text_chat.config(state=tk.NORMAL)
text_chat.insert(tk.END, message+'\n')
text_chat.config(state=tk.DISABLED)
text_chat.see(tk.END)
HOST = 'localhost'
PORT = 5555
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
root = tk.Tk()
root.title('Chat Client')
root.geometry('400x400')
text_chat = tk.Text(root, state=tk.DISABLED)
text_chat.pack(fill=tk.BOTH, expand=True)
entry_msg = tk.Entry(root)
entry_msg.pack(fill=tk.X, side=tk.LEFT, expand=True)
btn_send = tk.Button(root, text='Send', command=send_message)
btn_send.pack(side=tk.RIGHT)
entry_msg.bind('<Return>', send_message)
receive_thread = threading.Thread(target=receive_message)
receive_thread.start()
root.mainloop()
Пример программы для сервера:
import socketimport threading
def handle_client(client_socket, address):
while True:
message = client_socket.recv(1024).decode('utf-8')
for client in clients:
if client != client_socket:
client.send(message.encode('utf-8'))
HOST = 'localhost'
PORT = 5555
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen()
clients = []
while True:
client_socket, address = server_socket.accept()
clients.append(client_socket)
client_thread = threading.Thread(target=handle_client, args=(client_socket, address))
client_thread.start()
Обратите внимание, что это только примеры программ и не включают в себя все элементы пользовательского интерфейса, которые были вами указаны. Необходимо доработать программы с учетом интерфейса пользователя и добавить соответствующие элементы управления.