3 Hent vertsinformasjonen med " getaddrinfo "-funksjonen ved å legge følgende kode i funksjon din : en
struct addrinfo hint , * res ;
int SFD ;
røye buffer [ 512 ];
int nrecv ;
memset (& hint, 0 , sizeof hint ) ;
hints.ai_socktype = SOCK_STREAM ;
hints.ai_family = AF_UNSPEC ;
getaddrinfo ( " www.server.com ", " 3500 " , og hint , og res) ;
Sett host adresse " www.server.com " og resten av " 3500 " med informasjonen til serveren du kobler til . Den " SOCK_STREAM " verdien angir kontakten vil bruke TCP, som er en pålitelig toveis forbindelse
4
Lag en stikkontakt med verten informasjon ved å legge følgende kode: .
SFD = socket (res - > ai_family , res - > ai_socktype , res - > ai_protocol ) ;
5
Koble kontakten med " connect "-funksjonen , bruker filen beskrivelse fra " socket "-funksjonen , ved å legge følgende kode :
connect ( SFD , res - > ai_addr , res - > ai_addrlen ) ;
6
åpne en fil for å skrive til med den " fopen "-funksjonen ved å legge følgende kode:
FILE * fp ;
fp = fopen ( " file.rar ", " wb ");
7 < p> Motta informasjon i buffer med " recv "-funksjonen ved å legge følgende kode:
int num_written = 0;
while ( ( nrecv = recv ( SFD , buffer, sizeof buffer, 0 ) ) > 0 ) {
røye * pbuf = buffer;
while ( nrecv > 0 ) {
num_written = fwrite ( pbuf , sizeof ( røye ) , nrecv , fp ) ;
pbuf + = num_written ;
nrecv - = num_written ;
}
}
sløyfen vil fortsette å motta informasjon til en feil , som returnerer en negativ verdi , eller til den mottar en "TCP FIN "-melding , som har en verdi på 0 .
8
Lagre C -filen , kompilere og kjøre programmet for å motta informasjon fra socket-tilkobling .