//Create a Raw socket
//SockRaw = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
SockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED);
if (SockRaw==INVALID_SOCKET)
{
return 0;
}
flag=TRUE;
//Set IP_HDRINCL Fill IP Header By itsSelf
ErrorCode=setsockopt(SockRaw,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int));
if (ErrorCode==SOCKET_ERROR)
{
return 0;
}
local.sin_family = AF_INET;
local.sin_port = htons((short)7000);
local.sin_addr.S_un.S_addr=inet_addr("192.168.1.55");
//bind to local port
if (bind(SockRaw, (SOCKADDR *)&local, sizeof(local)) == SOCKET_ERROR)
{
printf("bind() failed: %d\n", WSAGetLastError());
int j = WSAGetLastError();
return 0;
}