tag picard para musicbrainz mac kid3 español editar easytag linux networking epoll

linux - picard - ¿Cómo uso EPOLLHUP?



musicbrainz (1)

Usted usa EPOLLRDHUP para detectar el cierre del par, no EPOLLHUP (que señala un cierre inesperado del socket, es decir, generalmente un error interno).

epoll_ctl uso es realmente simple, simplemente "o" la bandera con cualquier otra bandera que le estés dando a epoll_ctl . Entonces, por ejemplo, en lugar de EPOLLIN escriba EPOLLIN|EPOLLRDHUP .

Después de epoll_wait , haga un if(my_event.events & EPOLLRDHUP) seguido de lo que quiera hacer si el otro lado cierra la conexión (probablemente querrá cerrar el socket).

Tenga en cuenta que obtener un resultado de "cero bytes de lectura" al leer desde un socket también significa que el otro extremo ha cerrado la conexión, por lo que siempre debe verificar eso también, para evitar sorpresas desagradables (el FIN puede llegar después de que se haya despertado de EPOLLIN pero antes de llamar a read , si está en modo ET, no recibirá otra notificación).

¿Podrían ustedes proporcionarme un buen código de ejemplo usando EPOLLHUP para el manejo de compañeros muertos? Sé que es una señal para detectar la desconexión de un usuario pero no estoy seguro de cómo puedo usar esto en el código ... Gracias de antemano ...