Raw socket problema de creación.

Hola a todos. Estoy viendo el tema de la implementación de Raw socket mediante la librería winsock2.h

En el siguiente código dejo de lado la definición del ip header y el tcp header

Código:
#include <QCoreApplication>




#include "stdio.h"

#include "winsock2.h"

#include "ws2tcpip.h" //IP_HDRINCL está acá.

#include "conio.h"

//Aca va la definición del ip header y el tcp header pero no lo agrego para no tener densidad de código.

int main(int argc, char *argv[])

{

    QCoreApplication a(argc, argv);




    char host[100],buf[1000],*data=NULL,source_ip[20]; //buf es el paquete completo

    SOCKET s;

    int k=1;




    IPV4_HDR *v4hdr=NULL;

    TCP_HDR *tcphdr=NULL;




    int payload=512 , optval;

    SOCKADDR_IN dest;

    hostent *server;




    //Inizializando Winsock

    WSADATA wsock;

    printf("\nInicializando Winsock...");

    if (WSAStartup(MAKEWORD(2,2),&wsock) != 0)

    {

    fprintf(stderr,"WSAStartup() fallo");

    exit(EXIT_FAILURE);

    }

    printf("Inició con exito.");

    ////////////////////////////////////////////////




    //Crear Raw TCP Packet

    printf("\nCreando Raw TCP Socket...");

    if((s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW))==SOCKET_ERROR)

    {

    printf("Creacion de raw socket fallo.");

    return 0;

    }

Es en la última linea donde tengo el error al crear el socket. La salida del programa es "Creacion fallo"

Pues he seguido la documentación según lo definido en winsock.h y no encuentro cual es el problema. ¿Alguien sabe?

Capture.JPG

PD: Mejoró bastante la GUI del foro (y)

Saludos.
 
Última edición:
Atrás
Arriba