Nwlapcug.com


Come creare codice di pacchetti TCP/IP nella programmazione in C

Creazione di un pacchetto TCP/IP è importante quando si desidera il programma C per rendere una connessione attiva con un host remoto per inviare i dati avanti e indietro. TCP/IP è un protocollo di rete che prevede la consegna affidabile e ordinata di pacchetti tra due host. Le applicazioni di trasferimento world wide web, e-mail e file tutti utilizzano il protocollo TCP/IP. Creare un pacchetto TCP/IP di raccolta di dati su un host, rendendo un socket fuori che i dati e quindi inviare il socket all'host remoto.

Istruzioni

1

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

2

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

3

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

sono < Winsock2. h > includono < Ws2tcpip > 4

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

struct addrinfo suggerimenti, * res;

int socket_descriptor;

Le strutture di "addrinfo" memorizzerà il valore restituito della funzione "getaddrinfo". Il "socket_descriptor" è il descrittore di integer che restituirà la funzione di "presa".

5

Inizializzare le variabili aggiungendo il codice seguente:

memset (& suggerimenti, 0, sizeof suggerimenti);

hints.ai_family = AF_UNSPEC;

hints.ai_socktype = SOCK_STREAM;

Il valore di "AF_UNSPEC" specifica che la famiglia di indirizzi per la funzione di "getaddrinfo" può essere qualsiasi tipo valido, ad esempio IPv4 o IPv6. Il "SOCK_STREAM" indica un socket di flusso TCP.

6

Chiamare la funzione di "getaddrinfo" aggiungendo il codice seguente:

getaddrinfo ("www.server.com", "3490" & hints & res);

Sostituire "www.server.com" con il server che si desidera connettersi. Sostituire "3490" con la porta che si effettuerà la connessione. La funzione di "getaddrinfo" raccoglie informazioni indipendenti dal protocollo su un indirizzo dal relativo nome host, che ritorna nelle strutture "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 restituite dalla funzione "getaddrinfo" per creare un socket completo.

8

Connettersi al server remoto con la funzione "Connetti" aggiungendo il codice seguente:

collegare (socket_descriptor, res -> ai_addr, res -> ai_addrlen);

La funzione "Connetti" prende la vostra presa, inviarlo 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.