Doğru ya, UDP niye aklıma gelmedi bilmiyorum. Çözümünüz ihtiyacımı karşıladı, teşekkür ederim.
Şöyle bir kod yazdım, eksiği varsa düzeltirsiniz diye ekliyorum:
import socket
import select
class Getter:
def __init__(self):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.bind(('',64321))
self.ips = []
def update(self):
while select.select((self.socket,),(),(),0)[0]:
m=self.socket.recvfrom(1024)
ip = m[1][0]
if m[0][0]:
if ip not in self.ips:
self.ips.append(ip)
else:
try:
self.ips.remove(ip)
except ValueError: pass
return self.ips
class Broadcaster:
def __init__(self):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
def broadcast(self, bool_: bool):
"""Cihazın bağlanmaya müsait olup olmadığını duyur."""
if bool_:
self.socket.sendto(b'\x01',('255.255.255.255',64321))
else:
self.socket.sendto(b'\x00',('255.255.255.255',64321))