Ubuntu + Python: HTTP-клиент на wlan0 и TCP-сервер на eth0 - PullRequest
0 голосов
/ 22 сентября 2018

Все,

Я из мира микроконтроллеров (чистый "C"), и это мой первый настоящий проект с использованием Python и встроенного Linux (Nanopi Neo).Извиняюсь, если вопрос сформулирован плохо.

Я использую плату Nanopi Neo с дистрибутивом Ubuntu (16.04.5 LTS).В настоящее время я использую два интерфейса: проводное соединение Ethernet (eth0) и беспроводное соединение wifi (wlan0).Оба интерфейса работают, я вижу оба IP-адреса, потому что на плате есть OLED-экран.

Я хотел бы связать TCP-сервер с проводным интерфейсом (eth0) и HTTP-клиента с интерфейсом wifi(wlan0).

Полевой техник подключится к серверу на Nanopi, чтобы настроить учетные данные для Wi-Fi.Как только учетные данные будут получены, полевой техник отключит проводное соединение, а HTTP-клиент Nanopi подключится к Wi-Fi и отправит информацию на удаленный сервер.

У меня следующие вопросы:

  1. Как связать HTTP-клиента с wlan0, а TCP-сервер с eth0?Возможно ли это?

  2. Как мне написать код, чтобы две задачи (сервер и клиент) выполнялись одновременно (я думаю, в двух отдельных потоках)?

Мне не нужен ответ (хотя это было бы неплохо), но полезные ссылки.Мои поиски по «интерфейсу», «клиент / сервер», «одновременный» привели ко всей неверной информации / примерам ...

Спасибо за ваше время и помощь.

Grazie e ciao, Винченцо

======= РЕДАКТИРОВАТЬ 1 =======

У меня не было возможности попробовать, но следующий StackOverflowpost: Как привязать сокет к интерфейсу в Python (отсутствует socket.SO_BINDTODEVICE) , похоже, содержит полезную / полезную информацию

1 Ответ

0 голосов
/ 27 сентября 2018

Если вас устраивает pycurl, вы можете посмотреть первый ответ на этот вопрос: Отправить запрос http через определенный сетевой интерфейс

В основном вы будете отправлять запросы GET через интерфейс вашегои у вас будет HTTP-клиент на выбранном вами интерфейсе.

Я не смог найти способ сделать это с помощью «запросов».

В лучшем случае это частичный ответ, Я знаю.Извините за это.

...