z0ng
@z0ng
Python-developer

Что использовать для получения TCP-пакетов в python?

Помогите выбрать правильный инструмент для решения задачи. Нужно принимать данные со множества одинаковых устройств, у которых свой протокол поверх TCP, и складывать их в базу. До этого ни разу не работал с сетью на этом уровне, только с http.

Пока что нагуглил что нужно использовать streams из asyncio, и поднимать свой TCP-сервер, но пока не разобрался как с этим работать.

UPD:
Устройств будет довольно много - несколько сотен. Они собирают данные с датчиков и отсылают это на сервер раз в минуту.
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Использовать нужно сокеты. В некоторых случаях можно с asyncio.
Ответ написан
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Вот простой пример.
Для описанных вами задач скорее всего не потребуется asyncio.
Конечно, может быть ваше устройство шлёт данные с огромной скоростью и не каждая БД успеет их принимать, или данным в потоке нужна нетривиальная и трудоёмкая обработка, а может быть их требуется обогащать доп-запросами к другим API, тогда вам, может быть и пригодится асинхронная работа. Но, чтобы сделать окончательный вывод, нужно больше подробностей.
Ответ написан
sgjurano
@sgjurano
Разработчик
Если у вас тысячи запросов в минуту по паре десятков байт (~150 rps и 3 kbps, что мало), то вы их можете просто парой тредов в цикле обрабатывать, причём я бы начал с одного.

Система получится простая и достаточно надёжная.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы