| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> C /C + + Programming >> Content
    Cómo purgar un Reciba Socket búfer en C
    Al recibir los datos de un socket en un búfer , es importante detectar cuando el socket se cierra de modo que usted no tiene que esperar para los paquetes adicionales por tiempo indefinido. La API de Windows Sockets ( Winsock ) proporciona una interfaz para el programa C para interactuar con la pila de protocolos TCP /IP subyacente. Recopilar la información del servidor, crear un socket, conéctelo a la acogida y recepción de datos con la función " recv " en un búfer hasta que reciba un mensaje de "TCP FIN " error o . Instrucciones
    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
    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 .

    Previous :

    next :
      Artículos relacionados
    ·¿Qué desventajas hay en eliminar la referencia implí…
    ·Cómo habilitar la memoria de detección de fugas 
    ·Cómo hacer MFC Botones de comando 
    ·Cómo hacer un archivo MIDI en C + + 
    ·Cómo crear archivos Pyc para correr sobre Web 
    ·Cómo dejar de desbordamiento de búfer C 
    ·Cómo calcular el número de elementos en una matriz C …
    ·Cómo utilizar Ordenación rápida Función en C + + en…
    ·Cómo utilizar los tipos de datos en C + + 
    ·Cómo aprender Visual C + + 
      Artículos destacados
    ·Atravesando través de una variable de cadena en Java 
    ·Cómo integrar teletipos comunes 
    ·Cómo criar a un entero a una potencia en C 
    ·Cómo visualizar la hora en VB.Net 
    ·Cómo corregir los errores de secuencias de comandos 
    ·Cómo hacer de arranque de Visual Basic ( VB ) 
    ·Cómo hacer una copia de un objeto con Python 
    ·Cómo enviar correo electrónico a VB.Net Sistema de Co…
    ·Cómo Multiplicar enteros con los cambios Bit 
    ·Cómo declarar una matriz de estructuras en C 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com