Linux Socket: Comment détecter le réseau déconnecté dans un programme client?

Je suis le débogage d'un c linux basée sur les sockets. Comme tous les exemples disponibles dans les sites web,
J'ai appliqué la structure suivante:

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);

Je peux détecter la déconnexion lorsque le serveur de supprimer ferme son programme serveur. Mais si je débranchez le câble ethernet, la fonction d'envoi de toujours revenir à des valeurs positives plutôt que de -1.

Comment puis-je vérifier la connexion réseau dans un programme client en supposant que je ne peux pas changer de serveur?

OriginalL'auteur user2052197 | 2013-02-08