-
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.