Здравствуйте, гость ( Вход | Регистрация )
Iron Bug | Дата 9.12.2018, 3:17 |
по идее, тут надо клиент переписывать. если он не может приконнектиться, то у него не должно быть бесконечных ожиданий на коннект. он должен просто выходить по таймауту. можно тупо на iptables сделать ограничение через connlimit - один коннект от одного ip. но если клиент написан с бесконечным ожиданием, то он всё равно будет висеть. |
|
demon051 | Дата 7.12.2018, 13:06 |
Всем привет. Вопрос в общем-то идиотский ) Все борются с тем, как увеличить, а мне надо наоборот Есть написанный серверный код, который запускает листнер на порту и ждет подключения клиента Код ..... while(...) { if(select(FD_SETSIZE, &readset, NULL, NULL, &connection_timeout)==0) continue; //обработка подключения ..... while(...) {//обмен .... } ..... } и далее после подключения уходит в цикл обмена с клиентом. но если другой клиент попробует подключиться к этому же серверу, то он на своей стороне получит ОК. однако, поскольку на сервере select не обработает это подключение, то клиент останется в подвешенном состоянии. Вопрос: можно ли как-то указать, что если уже есть подключение, то все другие попытки получают отказ? Понятно, что код можно переписать так, чтобы всё это фильтровать... Но он уже написан как есть и переделывать очень не хочется за "тем парнем". Надо "косячить" дальше |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 20.4.2024, 0:14 |