import socket
import network
import time
import random

PORT = 5005
seen_msgs = set()

# WiFi STA mode (brez AP)
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('pi','raspberry')

while not wlan.isconnected():
    time.sleep(1)

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.bind(("", PORT))

def send(msg_id, ttl, payload):
    msg = f"{msg_id}|{ttl}|{payload}"
    sock.sendto(msg.encode(), ("255.255.255.255", PORT))

# Pošlji prvi paket
send("MSG1", 5, "hello")

while True:
    data, addr = sock.recvfrom(1024)
    msg = data.decode()

    msg_id, ttl, payload = msg.split("|")
    ttl = int(ttl)

    if msg_id in seen_msgs:
        continue

    seen_msgs.add(msg_id)

    print("Got:", msg)

    ttl -= 1
    if ttl > 0:
        time.sleep(random.uniform(0.1, 0.5))  # prepreči storm
        send(msg_id, ttl, payload)