Python Socket Программирование - PullRequest
0 голосов
/ 19 июня 2011

Я занимаюсь разработкой испытательного стенда для среды облачных вычислений. Я хочу установить несколько клиентских подключений к серверу. Я хочу, чтобы сервер в первую очередь отправлял данные всем клиентам, указав send_interval, а затем все клиенты продолжали отправлять свои данные с промежутком времени этого time_interval (как указано сервером). Пожалуйста, помогите мне, как я могу сделать то же самое с помощью программы Python Socket. (т.е. я хочу, чтобы подключение нескольких клиентов к одному серверу, а также отправка данных клиентом с промежутком времени, указанным сервером). Будет очень много, если кто-нибудь может мне помочь. Заранее спасибо.

Ответы [ 2 ]

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

Для нескольких клиентов и для одного сервера Программирование сокетов может быть достигнуто с помощью многопоточности в программировании сокетов.Я реализовал оба метода:

  1. Один клиент и один сервер
  2. Мультиклиент и один сервер

В моей ссылке на репозиторий GitHub: https://github.com/shauryauppal/Socket-Programming-Python

Что такое многопоточное программирование сокетов? Многопоточность - это процесс одновременного выполнения нескольких потоков в одном процессе.

Чтобы хорошо понять, вы можете посетить ссылку:https://www.geeksforgeeks.org/socket-programming-multi-threading-python/, написано мной.

0 голосов
/ 25 июля 2012

Эта проблема легко решается библиотекой сокетов ZeroMQ .Это стабильное производство.Он позволяет вам определять отношения издатель-подписчик, где процесс публикации будет публиковать данные на порту независимо от того, сколько существует процессов прослушивания (от 0 до бесконечного).Они называют это моделью PUB-SUB;это в их документах (ссылка ниже).

Похоже, вы хотите настроить группу клиентов, которые все являются издателями.Они могут подписаться на контрольный канал, который будет посылать обновления своей конфигурации (как часто писать).Они также выступают в качестве издателей, распространяя свои собственные данные с интервалом, заданным по умолчанию / config channel / socket.

Затем у вас есть один или несколько процессов прослушивания, которые прослушивают все опубликованные сообщения клиентов.Возможно, у вас даже может быть два процесса прослушивания, один для резервного копирования или аварийного восстановления, или что-то еще.

Мы используем ZeroMQ и любим простоту, которую он дает ;ошибок соединения нет, потому что издателю все равно, слушает ли кто-либо, и подписчик может начать работу перед издателем, и если там нечего слушать, он может просто зацикливаться и ждать, пока оно не появится.

Привязки доступны на ВСЕХ языках (это странно).Привязка Python не является чисто python, она требует компилятора C, но пугающе быстра, а пример pub / sub - это вырезка / вставка: «Боже, это работает!»опыт работы.

Ссылка: http://zeromq.org

В этой библиотеке доступно МНОГИЕ другие методы, включая очереди сообщений и т. д. Они также имеют относительно полную документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...