Как уменьшить количество подключений к серверу до одного?, запретить подключаться другим клиентам к серверу при наличии активного |
Здравствуйте, гость ( Вход | Регистрация )
Как уменьшить количество подключений к серверу до одного?, запретить подключаться другим клиентам к серверу при наличии активного |
demon051 |
7.12.2018, 13:06
Сообщение
#1
|
Студент Группа: Участник Сообщений: 27 Регистрация: 12.8.2014 Пользователь №: 4209 Спасибо сказали: 4 раз(а) Репутация: 0 |
Всем привет.
Вопрос в общем-то идиотский ) Все борются с тем, как увеличить, а мне надо наоборот Есть написанный серверный код, который запускает листнер на порту и ждет подключения клиента Код ..... while(...) { if(select(FD_SETSIZE, &readset, NULL, NULL, &connection_timeout)==0) continue; //обработка подключения ..... while(...) {//обмен .... } ..... } и далее после подключения уходит в цикл обмена с клиентом. но если другой клиент попробует подключиться к этому же серверу, то он на своей стороне получит ОК. однако, поскольку на сервере select не обработает это подключение, то клиент останется в подвешенном состоянии. Вопрос: можно ли как-то указать, что если уже есть подключение, то все другие попытки получают отказ? Понятно, что код можно переписать так, чтобы всё это фильтровать... Но он уже написан как есть и переделывать очень не хочется за "тем парнем". Надо "косячить" дальше |
|
|
Iron Bug |
9.12.2018, 3:17
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
по идее, тут надо клиент переписывать. если он не может приконнектиться, то у него не должно быть бесконечных ожиданий на коннект. он должен просто выходить по таймауту.
можно тупо на iptables сделать ограничение через connlimit - один коннект от одного ip. но если клиент написан с бесконечным ожиданием, то он всё равно будет висеть. |
|
|
Текстовая версия | Сейчас: 25.11.2024, 6:15 |