Tecnología

Inicio

Cómo crear / Código paquetes IP TCP en C Programación

Creación de un paquete TCP / IP es importante cuando usted quiere que su programa en C para hacer una conexión activa con un host remoto para enviar datos de un lado a otro. TCP / IP es un protocolo de red que proporciona fiable y ordenó la entrega de paquetes entre dos hosts. Los Wide Web, correo electrónico y aplicaciones de transferencia de archivos del mundo Todos utilizan el protocolo TCP / IP. Crear un paquete TCP / IP mediante la recopilación de datos sobre un host, haciendo una toma de esos datos y luego enviar el socket con el host remoto.

Instrucciones

1 Abra el archivo de C en un editor como VC ++.

2 Añadir la biblioteca Winsock para la configuración del proyecto de su compilador para que enlazará correctamente. En VC ++ esto se hace haciendo clic en el menú "Proyecto", haga clic en "Configuración ...," clic "Enlace" y "Ws2_32.lib" escribir en el cuadro titulado "módulos objeto / biblioteca." Otros nombres posibles para la biblioteca Winsock incluyen "winsock32.lib" y "WSOCK32.LIB."

3 Incluir los encabezados y "Winsock2" "ws3tcpip" para acceder a las funciones de socket añadiendo el siguiente código en la parte superior de su archivo:

incluir <Winsock2.h> incluir <Ws2tcpip.h>

4 Declarar las variables necesarias para crear un paquete TCP / IP, añadiendo el siguiente código en su función:

struct addrinfo pistas, * res;

int socket_descriptor;

Las "estructuras" addrinfo almacenará el valor de retorno de la función "getaddrinfo". El "socket_descriptor" es el descriptor de bits que la función de "toma" volverá.

5 Inicializar las variables añadiendo el siguiente código:

memset (y las indirectas, de 0, sizeof consejos);

hints.ai_family = AF_UNSPEC;

hints.ai_socktype = SOCK_STREAM;

El valor "AF_UNSPEC" especifica que la familia de direcciones para la función "getaddrinfo" puede ser cualquier tipo válido, como IPv4 o IPv6. El "SOCK_STREAM" indica una toma de corriente de TCP.

6 Llame a la función "getaddrinfo" añadiendo el siguiente código:

getaddrinfo ( "www.server.com", "3490", y las indirectas, y res);

Reemplazar "www.server.com" con el servidor al que desea conectarse. Reemplazar "3490" con el puerto que va a conectarse. La función "getaddrinfo" recoge la información independiente del protocolo sobre una dirección de su nombre de host, que vuelve en las "estructuras" addrinfo.

7 Crear un socket TCP / IP con la función de "toma", añadiendo el siguiente código:

socket_descriptor = socket (res-> ai_family, res-> ai_socktype, res-> ai_protocol);

La función de "toma" utiliza la información devuelta por la función "getaddrinfo" para crear una toma completa.

8 Conectar con el servidor remoto con la función "conectar", añadiendo el siguiente código:

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

La función de "conectar" toma su zócalo, lo envía a la dirección especificada y crea una conexión activa con el anfitrión.

9 Guarde el archivo, compilar y ejecutar su programa para crear el paquete TCP / IP.