Форум сайта python.su
0
Есть приложение которое вызывает класс из библиотеки. Класс опрашивает устройство через мультикаст сокет в бесконечном цикле (while true) , получает данные {……..}. А как эти данные передать приложению? Если можно пример кода , плиииз
Офлайн
13
Benjaminкласс не функция
Есть приложение которое вызывает класс из библиотеки.
Benjaminа подробности, что за приложение, какие данные, какое семейство сокетов, есть ли у приложения API или он по stdin'у, может быть он с unix-сокета берет инфу или что?
Есть приложение которое вызывает класс из библиотеки. Класс опрашивает устройство через мультикаст сокет в бесконечном цикле (while true) , получает данные {……..}. А как эти данные передать приложению? Если можно пример кода , плиииз
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
0
У класса есть метод listen
self._mcastsocket = self._create_mcast_socket()
self._listening = True
thread = Thread(target=self._listen_to_msg, args
))
self._threads.append(thread)
thread.daemon = True
thread.start()
def _listen_to_msg(self):
while self._listening:
if self._mcastsocket is None:
continue
data, (ip_add, _) = self._mcastsocket.recvfrom(self.SOCKET_BUFSIZE)
try:
data = json.loads(data.decode(“ascii”))
gateway = self.gateways.get(ip_add)
if gateway is None:
if ip_add not in self.disabled_gateways:
_LOGGER.error('Unknown gateway ip %s', ip_add)
continue
cmd = data
if cmd == ‘heartbeat’ and data in GATEWAY_MODELS:
gateway.token = data
elif cmd == ‘report’ or cmd == ‘heartbeat’:
Вот тут хочу вернуть ‘data’ в приложение которое вызывает этот метод (но цикл слушания не прерывать)
else:
_LOGGER.error('Unknown multicast data: %s', data)
except Exception:
_LOGGER.error('Cannot process multicast message: %s', data)
continue
Офлайн