| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Comment purger un socket de réception de la mémoire tampon en C
    Lors de la réception des données d'une socket dans un tampon , il est important de détecter le moment où la prise ferme de sorte que vous ne voulez pas attendre indéfiniment des paquets supplémentaires . L'API Windows Sockets (Winsock ) fournit une interface pour votre programme C pour interagir avec le protocole TCP /IP pile de protocole sous-jacent. Recueillir les informations du serveur hôte , créer une socket , le connecter à l'hôte et ensuite recevoir des données avec la fonction " recv " dans une mémoire tampon jusqu'à ce que vous receviez un message d'erreur ou "TCP FIN" . Instructions
    1

    Ouvrez votre fichier C dans un éditeur tel que Microsoft Visual Studio Express .
    2

    Inclure les en-têtes nécessaires pour travailler avec les sockets et les fichiers en ajoutant le code suivant au début de votre fichier : Photos

    # include

    # include

    # include

    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 .

    Previous :

    next :
      articles connexes
    ·Comment faire pour utiliser des objets 2D en RPC 
    ·Comment calculer les cercles entrecroisés en C + + 
    ·Comment lancer dans C de l'objet à Datetime 
    ·Comment faire pour ajouter un interrupteur à bascule à…
    ·Comment Multiplier multiples entiers de C 
    ·Comment utiliser des tableaux C en C + + 
    ·Comment accéder à la bibliothèque MSDN en C + + 
    ·Comment rendre un cercle en OpenGL 
    ·Alternatives à Decompiler Boomerang 
    ·Qu'est-ce que Microsoft Visual Studio 6.0 
      articles en vedette
    ·Comment exécuter un script Python partir d'un shell 
    ·Mutagène Python Tutorial 
    ·Comment obtenir la différence entre deux dates en Perl…
    ·Tutoriel pour Dreamweaver Check Box PHP 
    ·Comment arrêter Exécuter en COBOL 
    ·Comment surveiller les événements en VBA 
    ·XNA Tutorial pour faire tourner un modèle 3D 
    ·Thrift vs Protocole Tampons 
    ·Comment télécharger demandes de transport à SAP 
    ·Quel est le code de caractère 
    Copyright © Connaissances Informatiques http://fr.wingwit.com