| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Come eliminare un buffer di ricezione Socket in C
    Quando si ricevono i dati da una presa di corrente in un buffer , è importante rilevare quando il socket si chiude in modo che non si attende per i pacchetti aggiuntivi a tempo indeterminato. L' API di Windows Sockets ( Winsock ) fornisce un'interfaccia per il programma C per interagire con lo stack del protocollo TCP /IP di base. Raccogliere le informazioni del server host , creare un socket , collegarlo al host e quindi ricevere dati con la funzione " recv " in un buffer fino a quando si riceve un messaggio di errore o " TCP FIN " . Istruzioni
    1

    Aprire il file C in un editor come Microsoft Visual Studio Express .
    2

    Includere le intestazioni necessarie per lavorare con i socket e file aggiungendo il seguente codice nella parte superiore del file :

    # include

    # include

    # include

    3

    recuperare le informazioni host con la funzione " getaddrinfo " aggiungendo il seguente codice nella funzione :

    struct sentori addrinfo , * res ;

    int sfd ;

    char buffer [ 512 ] ;

    int nrecv ;

    memset (& suggerimenti, 0 , accenni sizeof ) ;

    hints.ai_socktype = SOCK_STREAM ;

    hints.ai_family = AF_UNSPEC ;

    getaddrinfo ( " www.server.com " , " 3500 " , e suggerimenti, e res ) ;

    sostituire l'indirizzo dell'host di " www.server.com " e il porto di "3500 " con le informazioni per il server di cui si è connessi . Il valore " SOCK_STREAM " indica la presa utilizzerà TCP , che è un collegamento bidirezionale affidabile
    4

    creare un socket con le informazioni dell'host con l'aggiunta del seguente codice : .

    sfd = socket ( res - > ai_family , res - > ai_socktype , res - > ai_protocol ) ;
    5

    Collegare la presa con la funzione di "collegamento", utilizzando il descrittore di file dal " funzione di presa " , con l'aggiunta del seguente codice :

    connect ( SFD , res - > ai_addr , res - > ai_addrlen ) ;
    6

    Apri un file di scrittura con la funzione " fopen " aggiungendo il seguente codice :

    FILE * fp ;

    fp = fopen ( " file.rar " , " wb ");
    7 < p > Ricevere le informazioni nel buffer con la funzione " recv " aggiungendo il seguente codice:

    num_written int = 0;

    while ( ( nrecv = recv ( SFD , di buffer , sizeof tampone , 0 ) ) > 0 ) {

    char * pBuf = tampone ;

    mentre ( nrecv > 0 ) {

    num_written = fwrite ( pBuf , sizeof (char ) , nrecv , fp ) ;

    pBuf + = num_written ;

    nrecv - = num_written ;


    }

    }

    Il loop continueranno a ricevere informazioni fino a quando un errore , che restituisce un valore negativo , o fino a quando non riceve un messaggio di " TCP FIN " , che ha un valore di 0 .
    8

    Salvare il file C , compilare ed eseguire il programma per ricevere informazioni dalla connessione socket .

    Previous :

    next :
      Articoli Correlati
    ·Come fare un rettangolo con una funzione ricorsiva in C…
    ·Come compilare un programma C + + in Dev - C 
    ·Come restituire un puntatore ad un vettore 
    ·Come aggiungere Glut Con Visual C 
    ·Come risolvere il Visual C + + Runtime Library 
    ·Come ottenere un prototipo di funzione nella DLL 
    ·Come scrivere una semplice console di File Transfer Pro…
    ·Come arrotondare decimali in C + + 
    ·Come compilare C in Ubuntu 
    ·Come cambiare colore in C + + 
      Articoli in evidenza
    ·Come installare il motore PHP su un PC Windows 
    ·Come accedere ai dati in un oggetto DataSet 
    ·Procedura: GTK Selezione colore 
    ·Come creare Google Maps applicazione 
    ·Come programmare una domanda e la risposta del programm…
    ·Vs fisso . Matrice dinamica in Visual Basic 
    ·Che cos'è un file JAR 
    ·Come aggiungere ogni elemento di una lista in Python 
    ·Come creare una tabella SQLite3 in Ruby on Rails 
    ·Come modificare un collegamento ipertestuale con JavaSc…
    Copyright © Conoscenza Informatica http://it.wingwit.com