Sockets er en måde at overføre data ved hjælp af normer for en Unix fildeskriptor . En Unix file descriptor er et heltal , der er forbundet med en åben fil , og tillader operativsystemet at få adgang til det. Under Unix OS , er alt en fil , selv netværksforbindelser. Sockets er specialiseret til Internet -kommunikation. Når du bruger stikkontakter i dit program , skal du oprette et antal bytes til at modtage data. Dette kaldes en buffer . The C + + funktion " recv ()" giver dig mulighed for at oprette en buffer til at modtage data fra en stikkontakt. Ting du skal
C + + Integrated Development Environment (IDE ), såsom Eclipse CDT
C + + Compiler , sådan en GCC
vise flere Instruktioner
1
Ilæg C + + IDE ved at klikke på programmets ikon . Når den åbner , skal du vælge "File /New /Project" og vælg " C + + projekt" at oprette en ny C + + projekt. En tom kildekode fil vises i teksteditoren del af IDE
2
Tilføj følgende to " omfatter " direktiver til toppen af kildekoden fil: . # Include < sys /typer . h> # include
3 fortrolig med funktionen signatur for " recv () ". Posterne i parentes kaldes parametre , og de er typisk anvendes som en måde at overføre data til en funktion . Den første parameter er " int s ", som henviser til heltal identifikator for soklen , du ønsker at modtage data fra . Den anden parameter er en pointer til buffer, der lagrer alle modtagne data , og den tredje parameter er længden af bufferen i bytes . Den fjerde og sidste parameter er " flag "-parameteren , som kan ændre adfærden af funktionen . Afkastet type for denne funktion er " ssize_t ", og det returnerer antallet af bytes modtaget , eller "-1 ", hvis der opstår en fejl .
Ssize_t recv ( int s, void * buf , size_t len , int flag ) ;
4
Opret en vifte af " char " datatyper, der er garanteret at være mindst én byte lang. Den nøjagtige længde afhænger af detaljerne i dit system, men generelt en " char " er en byte eller otte bits , lange . Skriv følgende for at erklære en vifte af 256 " char " datatyper : Hej
char buffer [ 256 ]
5
Opret en variabel , der gemmer antallet af modtagne bytes . Dette er den værdi, der returneres af funktionen " recv () ", og det er nyttigt til bestemmelse når bufferen er næsten fuld, eller hvis en fejl er opstået. Skriv følgende for at oprette denne variabel : Hej
int modtaget = 0;
6
Tilslut til netværket placering ved hjælp af en stikkontakt. En socket er blot et heltal, og kan erklæres som dette : Hej
int socket;
7
Invoke funktionen " recv () " ved hjælp af variabler erklæret hidtil. For at bruge " recv () " med sin standard opførsel , indstille flaget til
modtaget = recv ( socket , buffer, sizeof ( buffer) , 0) "0". ,
8 < p> Kompiler og kør programmet . Programmet opstiller et område i hukommelsen og ruster det til at modtage data fra en stikkontakt. Derefter kalder " recv ()" funktionen , der modtager data fra stikkontakten .