4  dichiarare la variabili necessarie per creare un pacchetto TCP /IP aggiungendo il seguente codice nella funzione : 
 
 struct sentori addrinfo , * res ; 
 
 int socket_descriptor ; 
 
 " addrinfo " le strutture potranno memorizzare il valore di ritorno della funzione " getaddrinfo " . Il " socket_descriptor " è il descrittore intero che la funzione di "presa" tornerà 
 5 
 inizializzare le variabili aggiungendo il seguente codice : . 
 
 Memset ( & suggerimenti, 0 , sizeof sentori ) ; 
 
 hints.ai_family = AF_UNSPEC ; 
 
 hints.ai_socktype = SOCK_STREAM ; 
 
 il valore " AF_UNSPEC " specifica che la famiglia di indirizzi per la funzione " getaddrinfo " può essere qualsiasi tipo valido, come IPv4 o IPv6 . Il " SOCK_STREAM " indica una presa di flusso TCP 
 6 
 richiamare la funzione " getaddrinfo " aggiungendo il seguente codice: . 
 
 Getaddrinfo ( " www.server.com " , " 3490 ", e suggerimenti, e rES); 
 
 sostituire" www.server.com " con il server che si desidera connettersi . Sostituire " 3490 " con la porta che si sarà connettersi. La funzione " getaddrinfo " raccoglie indipendente dal protocollo informazioni su un indirizzo dal suo nome host , che restituisce nelle struct " addrinfo " . 
 7 
 creare un socket TCP /IP con la funzione di " presa" , aggiungendo il seguente codice : 
 
 socket_descriptor = socket ( res - > ai_family , res - > ai_socktype , res - > ai_protocol ) ; 
 
 la funzione di "presa" utilizza le informazioni restituito dalla funzione " getaddrinfo " per creare una presa completa 
 8 
 connettersi al server remoto con la funzione "connect" , aggiungendo il seguente codice: . 
 
 connect ( socket_descriptor , res - > ai_addr , res - > ai_addrlen ) ; 
 
 la funzione "connect" prende la presa , lo invia all'indirizzo specificato e crea una connessione attiva con l'host 
 9 . 
 Salvare il file , compilare ed eseguire il programma per creare il pacchetto TCP /IP .