LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Таймаут селекта не для того чтоб с помощью него высокоуровневую логику организовывать, он только для того чтоб селект не повис на вечно если не будет событий. Более того, селект не гарантирует что он будет ждать ровно столько сколько ты указал в таймауте, он может завершиться раньше с возвратом -1 и errno=EINTR. Используй clock_gettime() для подсчёта подключился ли кто-то или нет и настройки правильного таймаута для селекта в очередной раз. А в селект суй все сокеты которыми интересуешься в данный момент.

Исправление firkax, :

Таймаут селекта не для того чтоб с помощью него высокоуровневую логику организовывать, он только для того чтоб селект не повис на вечно если не будет событий. Более того, селект не гарантирует что он будет ждать ровно столько сколько ты указал в таймауте, он может завершиться раньше с возвратом -1 и errno=EINTR. Используй clock_gettime() для подсчёта подключился ли кто-то или нет и настройки правильного таймаута для селекта в очередной раз. А в селект суй все сокет которыми интересуешься в данный момент.

Исходная версия firkax, :

Таймаут селекта не для того чтоб с помощью него высокоуровневую логику организовывать, он только для того чтоб селект не повис на вечно если не будет событий. Используй clock_gettime() для подсчёта подключился ли кто-то или нет. А в селект суй все сокет которыми интересуешься в данный момент.