Tengo un problema al usar la función de selección en Unix.¿Es necesario restablecer el fd_set entre la llamada al sistema seleccionada?
Tengo un servidor que espera una conexión. Primero agrego el descriptor de archivo de socket de escucha listener
al fd_set readfds
usando FD_SET(listener, readfds)
y luego lo uso en select()
.
Cuando llego a una conexión, que llamo accept()
y establecer el readfds
en select con el descriptor de archivo aceptados y empieza a recibir los datos de conexión. Sin embargo, cuando verifico el código en strace, The select no muestra el oyente en el readfds
mientras que select()
se está ejecutando por segunda vez.
¿Debo volver a configurar el descriptor del archivo de escucha utilizando FD_SET(listener, readfds)
antes de llamar al select()
nuevamente?
Gracias.
Además, no en Linux, el valor del tiempo de espera se puede modificar y, por lo tanto, también deberá reinicializarse. El estándar lo permite pero es poco común en otros sabores de Unix. –