Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur att rensa en mottagnings- socket i C

    Vid mottagande av data från en sockel i en buffert , är det viktigt att upptäcka när uttaget stängs så att du inte vänta på ytterligare paket på obestämd tid . Den Windows Sockets API ( Winsock ) tillhandahåller ett gränssnitt för din C-program att interagera med det underliggande TCP /IP -protokoll stacken . Samla värdserverns information, skapa en socket , anslut den till värden och sedan ta emot data med " recv " -funktion i en buffert tills du får ett felmeddelande eller " TCP FIN " budskap . Instruktioner
    1

    Öppna din C- filen i en editor som Microsoft Visual Studio Express .
    2

    Inkludera rubriker som krävs för att arbeta med uttag och filer genom att lägga till följande kod på toppen av din fil :

    # include

    # include

    # include

    3

    Hämta värden information med " getaddrinfo " funktionen genom att lägga till följande kod i din funktion :

    struct addrinfo tips , * res ;

    int SFD ,

    char buffer [ 512 ] ;

    int nrecv ,

    memset ( & tips , 0 , sizeof tips ) ,

    hints.ai_socktype = SOCK_STREAM ;

    hints.ai_family = AF_UNSPEC ;

    getaddrinfo ( " www.server.com " , " 3500 " , och tips , och res ) ,

    Byt värdens adress " www.server.com " och hamnen i " 3500 " med informationen för den server du ansluter till . Den " SOCK_STREAM " värde anger uttaget använder TCP , vilket är en pålitlig dubbelriktad anslutning
    4

    Skapa en socket med värdens uppgifter genom att lägga till följande kod : .

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

    Anslut uttaget med " connect " funktion , använder filidentifieraren från " socket " -funktion , genom att lägga till följande kod :

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

    Öppna en fil att skriva till med den " fopen " funktionen genom att lägga till följande kod :

    FILE * fp ,

    fp = fopen ( " file.rar " , " WB " ) ;
    7

    Ta emot information i bufferten med " recv " funktionen genom att lägga till följande kod :

    int num_written = 0 ;

    medan ( ( nrecv = recv ( SFD , buffert , sizeof buffert , 0 ) ) > 0 ) {

    char * pbuf = buffert ,

    samtidigt ( nrecv > 0 ) {

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

    pbuf + = num_written ;

    nrecv - = num_written ;

    }

    }

    slingan kommer att fortsätta att ta emot information tills ett fel , som returnerar ett negativt värde , eller tills den får en " TCP FIN " budskap , som har ett värde av 0 .
    8

    Spara C -fil , kompilera och exekvera programmet för att få information från socketanslutningen .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Lägga till en DLL till en CPP Project
    ·Hur du gör din egen Game Engine
    ·Hur att bädda in en databas i en Mac App
    ·Hur man beräknar tidsskillnad i C + +
    ·Hur man deklarerar en statisk variabel i C
    ·Hur man skapar ett datum i C #
    ·Hur man redigera strängar i MFC
    ·Hur man använder C + + Virtual Destructors
    ·Hur Länk till en CPP -fil
    ·Hur du loggar in till Papaya Android
    Utvalda artiklarna
    ·Java vs C : Likheter och skillnader
    ·Hur Monitor JVM Med Nagios
    ·Hur man hittar en lista över databaser på en MySQL Se…
    ·Hur man använder JavaScript för att skapa ett antal P…
    ·Lön för en Senior Level PHP Programmerare
    ·Hur Hard Code konstanter i Java
    ·Hur man skapar Java Script
    ·Typer av rutorna i VBA
    ·Hur man skriver ut en Array Utgång i omvänd ordning i…
    ·Hur till Redigera registernycklar i VB.Net
    Copyright © Dator Kunskap http://www.dator.xyz