Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Yukth en Agosto 20, 2014, 01:16:07 PM

Título: Ayuda flags en lenguaje c bajo windows
Publicado por: Yukth en Agosto 20, 2014, 01:16:07 PM
Recientemente me propuse aprender a programar o mejor dicho usar las FLAGS TCP en windows pero todo lo que consigo sobre esto es mas que todo orientado a  linux, un ejemplo que conseguí en un tutorial es este  /* connect.c */
#include<stdio.h>
#include<netinet/in.h>
#include<netdb.h> /* gethostbyname() */
#include<sys/types.h>
#include<sys/socket.h>

main(int argc, char **argv)
{
        struct sockaddr_in target;
        struct hostent *target_name;
        int socket_fd; /* descriptor del socket */

        if(argc!=3)
exit(printf("Uso: %s host|ip puerto\n",argv[0]));

        target_name=gethostbyname(argv[1]); /*estructura hostent*/

/* ESTRUCTURA sockaddr_in A QUIEN QUEREMOS SCANNEAR */
        target.sin_family=AF_INET;
        target.sin_addr=*((struct in_addr *)target_name->h_addr);
        target.sin_port=htons(atoi(argv[2]));
        bzero(&(target.sin_zero),8);
/* FIN DEL LLENADO DE LA ESTRUCTURA sockaddr_in */

        socket_fd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

/* Si logramos conectar al puerto de nuestro objetivo, imprime PUERTO ABIERTO, si no... */
        if((connect(socket_fd,(struct sockaddr *)&target,sizeof(target)))!=-1)
                printf("Puerto %s Abierto\n",argv[2]);
        else
                printf("Puerto %s Cerrado\n",argv[2]);

        close(socket_fd);
        return 0;
}


leei en otras partes y dicen que tengo que usar las librerías winsock.h & winsock2.h pero la verdad cada ves que lo ago me da error y no es porque no esten bien linkiadas las cabeceras :/
a el ejemplo es para ver que puertos están abiertos local mente.