Найти - Пользователи
Полная версия: Данные из прослушки сокета в приложение
Начало » Python для новичков » Данные из прослушки сокета в приложение
1
Benjamin
Есть приложение которое вызывает класс из библиотеки. Класс опрашивает устройство через мультикаст сокет в бесконечном цикле (while true) , получает данные {……..}. А как эти данные передать приложению? Если можно пример кода , плиииз
DamMercul
Benjamin
Есть приложение которое вызывает класс из библиотеки.
класс не функция
Benjamin
Есть приложение которое вызывает класс из библиотеки. Класс опрашивает устройство через мультикаст сокет в бесконечном цикле (while true) , получает данные {……..}. А как эти данные передать приложению? Если можно пример кода , плиииз
а подробности, что за приложение, какие данные, какое семейство сокетов, есть ли у приложения API или он по stdin'у, может быть он с unix-сокета берет инфу или что?
давай я тебя спрошу “а как сделать чтобы мое секретное приложение работало”, ответишь? и даже подробностей не дам, просто угадай как его починить и все на этом
Benjamin
У класса есть метод 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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB