Возможна ли децентрализованная связь между 3+ компьютерами в сети в python? - PullRequest
0 голосов
/ 28 января 2020

Итак, я пытался реализовать систему, в которой компьютеры в сети (где в сети всегда три или более компьютеров) могут асинхронно связываться друг с другом, отправляя друг другу данные.

Пока что все, что я смог найти в решениях go, - это сокеты, которые, насколько мне известно, требуют клиента и серверного скрипта. Моя первая проблема заключается в том, что я хотел бы удалить любые роли клиента или сервера, поскольку все компьютеры в сети децентрализованы и запускают один и тот же сценарий одновременно без сервера. Во-вторых, все компьютеры отправляют данные других датчиков (выбранных случайным образом) с определенного c момента времени. Если, например, у меня есть 4 компьютера в сети и - поскольку все они работают по одному и тому же сценарию - они решат отправить свои данные одновременно на другой компьютер, не приведет ли это к блокировке ожидания, так как все узлов пытается установить связь с другим компьютером, но эти компьютеры не могут принять соединение, потому что они также пытаются отправить данные?

Я рассмотрел использование многопоточности для запуска begin_syn c и wait_syn c работает одновременно, но я не уверен, будет ли это работать. У кого-нибудь есть какие-либо предложения или идеи для решений, которые я мог бы рассмотреть?

Спасибо за ваше время!

1 Ответ

0 голосов
/ 12 марта 2020

Согласно ответу NotTheBatman, я смог заставить это работать, используя сокеты на нескольких портах. Что касается того, как я справлялся с возможностью ожидания данных датчика и запросов к другим узлам, я просто использовал многопоточность с большим успехом.

...