4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 10 декабря 2005 19:12
Не, я думал, может на Delphi...
Вообще, максимальное количество допустимых подключений надо указывать при создании серверного сокета. Если конкретно, это делается при вызове функции listen (а вот более точно сказать не могу). Но это ограничивает только общее число соединений?
Если задача стоит сложнее и требуется каждому клиенту разрешать определенное количество соединений и оно - разное, то надо создать хеш, в котором ключи - это логины (или uidы) клиента, а значения - количество подключений. Соотвтственно, при покдлючении мы сравниваем значение хеша с макс. числом соединений для клиента, и если оно не превышает, то увеличиваем его на единицу и даем клиенту доступ, иначе - закрываем соединение.
Только вот такая идея не будет работать в случае, если ты обработку ведешь с помощью fork, так как у каждого процесса будет своя копия хеша. В этом случае придется выносить его либо в текстовый файл, либо в отдельную таблицу в БД.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
|