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

PD: Mejoró bastante la GUI del foro
Saludos.
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?

PD: Mejoró bastante la GUI del foro
Saludos.