crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Как уменьшить количество подключений к серверу до одного?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
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 не обработает это подключение, то клиент останется в подвешенном состоянии.

Вопрос: можно ли как-то указать, что если уже есть подключение, то все другие попытки получают отказ?

Понятно, что код можно переписать так, чтобы всё это фильтровать... Но он уже написан как есть и переделывать очень не хочется за "тем парнем". Надо "косячить" дальше :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 22.4.2021, 22:27