1
Abra el archivo C en un editor como Microsoft Visual Studio Express.
2
Incluir las cabeceras necesarias para trabajar con sockets y archivos agregando el siguiente código en la parte superior de su archivo :
# include # include # include 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 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 ) ; 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 ) ; Abrir un archivo para escribir con la función " fopen " agregando el siguiente código: FILE * fp ; fp = fopen ( " file.rar ", " wb "); 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 . Guarde el archivo C, compilar y ejecutar el programa para recibir información de la conexión de socket .
Página 3
4
5
6
7 < p> Recibir información en el búfer con la función " recv " agregando el siguiente código:
8