# 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 .