Ho un'applicazione che deve inviare alcuni dati a un server in un dato momento. Il modo più semplice sarebbe chiudere la connessione e riaprirla quando voglio inviare qualcosa. Ma voglio mantenere aperta la connessione in modo che quando voglio inviare i dati, io per prima cosa controllare la connessione di utilizzare questa funzione:Verifica se la presa è collegata o meno
bool is_connected(int sock)
{
unsigned char buf;
int err = recv(sock,&buf,1,MSG_PEEK);
return err == -1 ? false : true;
}
La parte negativa è che questo non funziona. Si blocca quando non ci sono dati da ricevere. Cosa posso fare? Come posso verificare se la connessione è ancora aperta?
http://stackoverflow.com/questions/4142012/how-to-find-the-socket-connection-state-in-c – BoBTFish