Página 3 Recupera la información de host con la función " getaddrinfo " agregando el siguiente código en su función :
struct consejos addrinfo , * res ;
int sfd ;
char buffer [512 ] ;
int nrecv ;
memset (& 0 , consejos , sugerencias sizeof ) ;
hints.ai_socktype = SOCK_STREAM ;
hints.ai_family = AF_UNSPEC ;
getaddrinfo ( " www.server.com " , "3500 " , y consejos , y res) ;
Reemplace la dirección del host de " www.server.com " y el puerto de "3500 " con la información para el servidor que se está conectando . El valor " SOCK_STREAM " indica que el socket utilizará TCP , que es una conexión bidireccional fiable
4
Crear un socket con la información del host añadiendo el siguiente código: .
SFD = socket (res -> ai_family , res -> ai_socktype , res -> ai_protocol ) ;
5
Conecte la toma con la función "connect ", utilizando el descriptor de archivo de la " función socket " , añadiendo el siguiente código:
connect ( SFD , res -> ai_addr , res -> ai_addrlen ) ;
6
Abrir un archivo para escribir con la función " fopen " agregando el siguiente código:
FILE * fp ;
fp = fopen ( " file.rar ", " wb ");
7 < p> Recibir información en el búfer con la función " recv " agregando el siguiente código:
num_written int = 0 ;
while (( nrecv = recv ( SFD , tampón , tampón sizeof , 0 ) ) > 0 ) {
char * pBuf = búfer ;
while ( nrecv > 0 ) {
num_written = fwrite ( pBuf , sizeof (char ) , nrecv , fp ) ;
pBuf + = num_written ;
nrecv - = num_written ;
}
}
El bucle continuará recibiendo información hasta que un error , que devuelve un valor negativo, o hasta que se recibe un mensaje de " TCP FIN" , que tiene un valor de 0 .
8
Guarde el archivo C, compilar y ejecutar el programa para recibir información de la conexión de socket .