3 récupérer les informations de l'hôte avec la fonction " getaddrinfo " en ajoutant le code suivant dans votre fonction :
struct conseils addrinfo , * res ;
int sfd ;
char buffer
[512 ] ;
int nrecv ;
memset ( & astuces , 0, sizeof conseils ) ;
hints.ai_socktype = SOCK_STREAM ;
hints.ai_family = AF_UNSPEC ;
getaddrinfo ( " www.server.com ", " 3500" , et des conseils, et res) ;
remplacer l'adresse de l'hôte de " www.server.com " et le port de " 3500" avec les informations du serveur auquel vous vous connectez . La valeur " SOCK_STREAM " indique le socket va utiliser TCP , qui est une connexion bidirectionnelle fiable
4
créer une socket avec les informations d'hôte en ajoutant le code suivant : .
sfd = socket ( res-> ai_family , res-> ai_socktype , res-> ai_protocol ) ;
5
Raccordez la prise avec la fonction "connect" , en utilisant le descripteur de fichier de la " fonction de prise " , en ajoutant le code suivant :
connect ( sfd , res-> ai_addr , res-> ai_addrlen de la structure ) ;
6
Ouvrir un fichier à écrire avec la fonction " fopen " en ajoutant le code suivant :
FILE * fp ;
fp = fopen (" file.rar ", " wb" ) ;
7 < p> Recevoir des informations dans la mémoire tampon avec la fonction " recv " en ajoutant le code suivant :
int num_written = 0;
while (( nrecv = recv ( sfd , un tampon , un tampon sizeof , 0) ) > 0) {
char * pbuf = tampon;
while ( nrecv > 0) {
num_written = fwrite ( pbuf , sizeof (char) , nrecv , fp) ;
pbuf + = num_written ;
nrecv - = num_written ;
} }
La boucle continueront de recevoir les informations jusqu'à ce qu'une erreur , qui renvoie une valeur négative , ou jusqu'à ce qu'il reçoive un message " TCP FIN " , qui a une valeur de 0.
8
Enregistrez le fichier C , compiler et exécuter le programme pour recevoir des informations de la connexion socket .