Come creare pacchetti TCP / IP codice in C Programming

April 22

Creazione di un pacchetto TCP / IP è importante quando si desidera che il programma di C per effettuare una connessione attiva con un host remoto per inviare i dati avanti e indietro. TCP / IP è un protocollo di rete che fornisce affidabile e ha ordinato la consegna dei pacchetti tra due host. Il World Wide Web, e-mail e file di applicazioni di trasferimento tutti utilizzano il protocollo TCP / IP. Creare un pacchetto TCP / IP attraverso la raccolta di dati relativi a un padrone di casa, facendo una presa di fuori di tali dati e inviando poi la presa per l'host remoto.

istruzione

1 Aprire il file C in un editor come VC ++.

2 Aggiungere la libreria Winsock di impostazioni di progetto del compilatore in modo che collegherà correttamente. In VC ++ questo viene fatto clic sul menu "Progetto", cliccando su "Impostazioni ...", cliccando su "Link" e digitando "ws2_32.lib" nella casella intitolata "moduli oggetto / libreria." Altri nomi possibili per la libreria Winsock includono "winsock32.lib" e "wsock32.lib."

3 Includere le "WinSock2" e le intestazioni "ws3tcpip" per accedere alle funzioni di socket aggiungendo il seguente codice nella parte superiore del file:

includere <Winsock2.h> includere <Ws2tcpip.h>

4 Dichiarare le variabili necessarie per creare un pacchetto TCP / IP aggiungendo il seguente codice nella funzione:

struct addrinfo suggerimenti, * res;

int socket_descriptor;

I "addrinfo" le strutture potranno memorizzare il valore di ritorno della funzione "getaddrinfo". Il "socket_descriptor" è il descrittore intero che la funzione "presa" tornerà.

5 Inizializzare le variabili aggiungendo il seguente codice:

memset (e suggerimenti, 0, suggerimenti sizeof);

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, ad esempio IPv4 o IPv6. Il "SOCK_STREAM" indica una presa di flusso TCP.

6 Chiamare 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 si collegherà a. La funzione "getaddrinfo" raccoglie le informazioni indipendente dal protocollo su un indirizzo dal nome host, che ritorna nelle "addrinfo" le strutture.

7 Creare un socket TCP / IP con la funzione "presa", aggiungendo il seguente codice:

socket_descriptor = presa (RES-> ai_family, RES-> ai_socktype, RES-> ai_protocol);

La funzione "presa" utilizza le informazioni restituite dalla funzione "getaddrinfo" per creare un socket 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.