Linux Socket: ¿Cómo detectar una red desconectada en un programa cliente?

Estoy depurando un programa de Linux basado en c socket. Como todos los ejemplos disponibles en sitios web, apliqué la siguiente estructura:

sockfd= socket(AF_INET, SOCK_STREAM, 0);

connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));

send_bytes = send(sockfd, sock_buff, (size_t)buff_bytes, MSG_DONTWAIT);

Puedo detectar la desconexión cuando el servidor de eliminación cierra su programa de servidor. Pero si desconecto el cable Ethernet, la función de envío todavía devuelve valores positivos en lugar de -1.

¿Cómo puedo verificar la conexión de red en un programa cliente asumiendo que no puedo cambiar el lado del servidor?

Respuestas a la pregunta(4)

Su respuesta a la pregunta