# include 
 
 3 
 recuperare le informazioni host con la funzione " getaddrinfo " aggiungendo il seguente codice nella funzione : 
 
 struct sentori addrinfo , * res ; 
 
 int sfd ; 
 
 char buffer [ 512 ] ; 
 
 int nrecv ; 
 
 memset (& suggerimenti, 0 , accenni sizeof ) ; 
 
 hints.ai_socktype = SOCK_STREAM ; 
 
 hints.ai_family = AF_UNSPEC ; 
 
 getaddrinfo ( " www.server.com " , " 3500 " , e suggerimenti, e res ) ; 
 
 sostituire l'indirizzo dell'host di " www.server.com " e il porto di "3500 " con le informazioni per il server di cui si è connessi . Il valore " SOCK_STREAM " indica la presa utilizzerà TCP , che è un collegamento bidirezionale affidabile 
 4 
 creare un socket con le informazioni dell'host con l'aggiunta del seguente codice : . 
 
 sfd = socket ( res - > ai_family , res - > ai_socktype , res - > ai_protocol ) ; 
 5 
 Collegare la presa con la funzione di "collegamento", utilizzando il descrittore di file dal " funzione di presa " , con l'aggiunta del seguente codice : 
 
 connect ( SFD , res - > ai_addr , res - > ai_addrlen ) ; 
 6 
 Apri un file di scrittura con la funzione " fopen " aggiungendo il seguente codice : 
 
 FILE * fp ; 
 
 fp = fopen ( " file.rar " , " wb "); 
 7 < p > Ricevere le informazioni nel buffer con la funzione " recv " aggiungendo il seguente codice: 
 
 num_written int = 0; 
 
 while ( ( nrecv = recv ( SFD , di buffer , sizeof tampone , 0 ) ) > 0 ) { 
 
 char * pBuf = tampone ; 
 
 mentre ( nrecv > 0 ) { 
 
 num_written = fwrite ( pBuf , sizeof (char ) , nrecv , fp ) ; 
 
 pBuf + = num_written ; 
 
 nrecv - = num_written ; 
 
 } 
 
 } 
 
 Il loop continueranno a ricevere informazioni fino a quando un errore , che restituisce un valore negativo , o fino a quando non riceve un messaggio di " TCP FIN " , che ha un valore di 0 . 
 8 
 Salvare il file C , compilare ed eseguire il programma per ricevere informazioni dalla connessione socket .