codice:
	
while(recv(s, msg_response, 1, 0) != 0) { 
   if (!header)	fprintf(fo,"%c", msg_response[0]);  
	
   if (ultimo_carattere == 13 && msg_response[0] == 10 && invio==true) header=false;
   ((ultimo_carattere == 13 && msg_response[0] == 10) || (ultimo_carattere==10 && invio))?invio=true:invio=false;  
   ultimo_carattere = msg_response[0];
      	 
}
Ho dei problemi con il pezzo di codice sopra che serve per fare un download di file da internet.
Quando provo a interrompere la connessione, il programma sembra piantarsi sulla riga fprintf e continua a scrivere ripetutamente l'ultimo carattere ricevuto.

Qualcuno sa dirmi perché o ha qualche suggerimento per far si che mi restituisca un messaggio di errore senza piantarmi la macchina?

grazie 1000 per ogni info