Linux Socket: Como detectar rede desconectada em um programa cliente?
Eu estou depurando um programa de soquete linux baseado em c. Como todos os exemplos disponíveis em sites, apliquei a seguinte estrutura:
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);
Eu posso detectar a desconexão quando o servidor de remoção fecha seu programa de servidor. Mas se eu desconectar o cabo ethernet, a função send ainda retornará valores positivos em vez de -1.
Como posso verificar a conexão de rede em um programa cliente supondo que não posso alterar o lado do servidor?