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 .