У меня есть несколько запущенных процессов, которые управляются удаленными клиентами.Сервер tcp контролирует доступ к этим процессам, только один клиент на процесс.Процессам присваивается идентификационный номер в диапазоне 0 -> n-1.Где 'n' - это число процессов.Я использую словарь для сопоставления этого идентификатора с дескриптором файла сокетов клиента.При запуске я заполняю словарь идентификаторами в качестве ключей и сокетом fd 'None' для значений, т.е. нет доступных клиентов и всех процессов
Когда клиент подключается, я сопоставляю идентификатор с сокетами fd.Когда клиент отключается, я устанавливаю для этого идентификатора значение None, т.е. процесс доступен.Поэтому каждый раз, когда клиент подключается, я должен проверять каждую запись в словаре на наличие процесса, у которого в сокете есть запись None.Если есть, то клиенту разрешено подключаться.
Это решение не выглядит очень элегантным, есть ли другие структуры данных, которые были бы более подходящими для решения этой проблемы?
Спасибо