Перейти к содержанию

задержка select()


Гость

Рекомендуемые сообщения

есть клиентское приложение которое ждет ответа от сервера определенное время если на сокет приходит ответ то вызывается recv() иначе return TIME_IS_OUT;

Как правильно передать дескриптор сокета в select() чтобы при изминении на сокете select() прикращал задержку

Ссылка на комментарий
Поделиться на другие сайты

???????

man 2 select пробовал?

(еще бывает man select_tut)

а так непонятно, что собственно надо.

Если таймаут -- для этой цели есть пятый параметр select

Если вообще:

fd_set wait_read;

struct timeval timeout = {5, 0};

FD_ZERO(&wait_read);

FD_SET(fd, &wait_read);

select(fd + 1, &wait_read, NULL, NULL, &timeout)

Однако же, еще раз скажу: man 2 select

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

пятый параметр отвечает за время которое будет потрачено на опрос состояния. обычно указывается в {0,2000} (не меньше) иначе всё будет в корку сваливатся при DOS атаке (проверено) виды оссобенно на этом моменте склеивают ласты.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

2000мкс == 2мс

Мне казалось, что задавать задержку, меньшую интервала таймера,

бессмысленно, так как она всё равно округлиться вверх.

Типичный интервал системного таймера == 10мс (частота 100 герц).

Как такой таймаут поможет против DoS атаки?

И как из-за DoS атаки и select пользовательский процесс может валиться в кору?

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...