Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment faire pour créer des graphi…
  • Comment faire un programme multiple …
  • Comment faire pour créer les fichie…
  • Quelle est la différence entre le p…
  • L'initialisation des pointeurs 
  • Pair /Impair fonction en programmati…
  • Comment lire un fichier XLS avec un …
  • Comment ajouter une DLL dans Visual …
  • Comment écrire un script Vim 
  • Comment faire une fonction de file d…
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    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 .

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment évaluer multiplication booléenne en C + + 
  • Comment déboguer avec DBX 
  • Qu'est-ce que Scarlett Fever 
  • Comment faire pour vérifier si les deux tableaux ont les mêmes éléments dans C + + 
  • Comment faire pour créer des fichiers PDF avec C Code Source 
  • Comment faire pour vérifier pour un commutateur de Substring 
  • Comment faire pour modifier SQL sur un iPhone 
  • Comment vérifier dépassement d'entier 
  • Comment ajouter une page de démarrage à un navigateur Web en C # 
  • Comment faire pour supprimer un caractère de nouvelle ligne en C 
  • Connaissances Informatiques © http://www.ordinateur.cc