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 .