2013-05-03 3 views
0

У меня есть несколько клиентов, которым необходимо подключиться к серверу и поддерживать соединение в течение некоторого времени (около 4 часов). Я не хочу указывать другой порт подключения для каждого клиента (поскольку их потенциально много) я бы хотел, чтобы они просто могли подключаться к серверу на определенном предопределенном порту, например, 10800, и принимать сервер и поддерживайте соединение, но все же сможете получать другие подключения от новых клиентов. Есть ли способ сделать это в Python или мне нужно переосмыслить архитектуру.Как получить и управлять несколькими TCP-соединениями на одном и том же порту?

ДОПОЛНИТЕЛЬНЫЙ КРЕДИТ. Фрагмент кода на сервере кода сервера, который делает это, будет потрясающим!

ответ

1

Я не хочу, чтобы указать другой порт подключения для каждого клиента (как есть потенциально многие из них)

Вам не нужно.

Я хотел бы их просто, чтобы иметь возможность подключиться к серверу на определенном заранее определенном порту, например, 10800 и есть сервер принимать и поддерживать связь, но по-прежнему иметь возможность получить другие соединения от новых клиентов

Вот как работает TCP.

Просто создайте разъем, прослушивающий порт 10800 и принимающий соединения от него.

0

Используйте select.select() для обнаружения событий на нескольких сокетах, таких как входящие соединения, входящие данные, емкость исходящего буфера и ошибки подключения. Вы можете использовать это в нескольких гнездах для прослушивания и в установленных соединениях из одного потока. Используя веб-поиск, вы наверняка найдете пример кода.