У меня проблема с использованием функции выбора в Unix.
У меня есть сервер, который ждет соединения.Сначала я добавляю дескриптор файла сокета прослушивания listener
к fd_set readfds
, используя FD_SET(listener, readfds)
, а затем использую это в select()
.
Когда я получаю соединение, я звоню accept()
и устанавливаю readfds
в выбранном дескрипторе файла и начинаю получать данные от соединения.Однако, когда я проверяю код в strace, select не показывает слушателя в readfds
, пока select()
выполняется во второй раз.
Нужно ли снова устанавливать дескриптор файла слушателя, используя FD_SET(listener, readfds)
перед повторным вызовом select()
?
Спасибо.