crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 5:34