Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 11, 2018 14:21:35

Benjamin
Зарегистрирован: 2018-09-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные из прослушки сокета в приложение

Есть приложение которое вызывает класс из библиотеки. Класс опрашивает устройство через мультикаст сокет в бесконечном цикле (while true) , получает данные {……..}. А как эти данные передать приложению? Если можно пример кода , плиииз

Офлайн

#2 Сен. 11, 2018 21:05:16

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Данные из прослушки сокета в приложение

Benjamin
Есть приложение которое вызывает класс из библиотеки.
класс не функция
Benjamin
Есть приложение которое вызывает класс из библиотеки. Класс опрашивает устройство через мультикаст сокет в бесконечном цикле (while true) , получает данные {……..}. А как эти данные передать приложению? Если можно пример кода , плиииз
а подробности, что за приложение, какие данные, какое семейство сокетов, есть ли у приложения API или он по stdin'у, может быть он с unix-сокета берет инфу или что?
давай я тебя спрошу “а как сделать чтобы мое секретное приложение работало”, ответишь? и даже подробностей не дам, просто угадай как его починить и все на этом



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Сен. 17, 2018 17:18:49

Benjamin
Зарегистрирован: 2018-09-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные из прослушки сокета в приложение

У класса есть метод 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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version