diff --git a/UDP_chat.py b/UDP_chat.py index c778fc9..c28aa2c 100644 --- a/UDP_chat.py +++ b/UDP_chat.py @@ -1,27 +1,22 @@ import socket import threading -# Константы BROADCAST_IP = "255.255.255.255" PORT = 10000 BUFFER_SIZE = 1024 -# Функция для отправки сообщений def send_messages(sock, username): while True: message = input() if message.startswith("/pm"): - # Личное сообщение в формате /pm <сообщение> try: _, target_ip, private_message = message.split(" ", 2) sock.sendto(f"PM {username}: {private_message}".encode(), (target_ip, PORT)) except ValueError: print("Неверный формат команды. Используйте: /pm <сообщение>") else: - # Отправка сообщения в общий чат sock.sendto(f"BC {username}: {message}".encode(), (BROADCAST_IP, PORT)) -# Функция для приема сообщений def receive_messages(sock): while True: data, addr = sock.recvfrom(BUFFER_SIZE) @@ -29,17 +24,13 @@ def receive_messages(sock): if addr[0] != socket.gethostbyname(socket.gethostname()): print(f"[{addr[0]}] {message}") -# Настройка сокета sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) -# Привязка к порту sock.bind(("", PORT)) -# Имя пользователя username = input("Введите ваше имя: ") -# Запуск потоков для отправки и получения сообщений send_thread = threading.Thread(target=send_messages, args=(sock, username)) receive_thread = threading.Thread(target=receive_messages, args=(sock,))