43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
import socket
|
|
import time
|
|
|
|
def broadcast_chat():
|
|
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
|
|
|
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
|
|
|
sock.bind(('0.0.0.0', 10001))
|
|
|
|
while True:
|
|
|
|
sock.settimeout(0.5)
|
|
try:
|
|
data, addr = sock.recvfrom(1024)
|
|
print(f"\n[Сообщение от {addr[0]}] {data.decode()}")
|
|
except socket.timeout:
|
|
pass
|
|
|
|
|
|
try:
|
|
|
|
message = input("Ваше сообщение: ")
|
|
|
|
if message.lower() == 'exit':
|
|
print("Выход из чата...")
|
|
break
|
|
|
|
|
|
sock.sendto(message.encode(), ('255.255.255.255', 10001))
|
|
print(f"[Вы отправили] {message}")
|
|
|
|
except KeyboardInterrupt:
|
|
print("\nВыход...")
|
|
break
|
|
|
|
sock.close()
|
|
|
|
if name == "main":
|
|
broadcast_chat() |