Sending UDP Raw socket
Posted on
16th Feb 2014 07:03 pm by
admin
I truly need help on this. I am trying to write a test program that simulate a network environment that have 5 clients and 1 server. To do so, I need to be able to edit IP header to change it's source address and various other values in the header. To change it, I need to use socket raw and IP_HRINCL socket option.
However, it doesn't work during the send with error 10049, "Address not available" from WSAGetLastError(). I am wondering how would I do so, and can I please look at a simple example on how to change your IP header and send it. By the way, I am using winsock with VC++, and my os is XP. I know there are some issues regarding XP's compatibility with Raw socket. In addition, if winsock is not a viable option, is there anyway for me to write in lower socket?
Did you know?Explore Trending and Topic pages for more stories like this.
Here's my code
Code:
#include
#include
#include
using namespace std;
int initialize();
void main()
{
initialize();
SOCKET sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP);
int error;
char on = 1;
setsockopt(sock,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on));
if(sock == INVALID_SOCKET)
cout << "Crap raw socket " << endl;
/* Header data */
unsigned char header[32] = {0x45,0x00,0x00,0x20,0x01,0xf1,0x00,0x00,0x05,0x11,0x9c,0x0a,0x05,0x3a,0x38,0x02,0xe0,
0x02,0xfa,0x93};
memset(header+20,0,12);
SOCKADDR_IN sock_add;
sock_add.sin_family = AF_INET;
sock_add.sin_port = htons(1542);
sock_add.sin_addr.s_addr = inet_addr("192.168.1.1");
error = sendto(sock,(char*)header,32,0,(LPSOCKADDR)&sock_add,sizeof(SOCKADDR_IN));
}
int initialize()
{
int t;
/* Before any Winsock function to work, we need to call to wsock.dll to initialize those
functions */
WSADATA wsa_data;
t = WSAStartup(MAKEWORD(1,1), &wsa_data);
if(t != 0)
return -1;
else
return 0;
}
Your Answer:
Login to answer
118
39
Other forums
moving mouse to display image coordinates
I have an existing MFC application that shows an image in the main window.
I'd like to be able to
Query issues
I probably have this setup wrong well I know I do because nothing is showing up now. What I want is
Anti Spam Code Problems
Ok where do i start? Probably by telling you I have very little working knowledge of PHP and that I
Help with ORDER BY
Hello. I would like to order by ascending States, then Cities, then Gyms in the following code, but
cookie problem
I hv a website url
In this site main menu functionality based on cookie when user click on parti
Include with Parameters
In a particular page I would like to include a file that requires $_GET parameters.
when I go
Create multiple (n) arrays
Hi there,
I have the following need:
I have 2 arrays (coming from a databases)
How to submit a form to the same page?
I have a table containing information about books in my library and this table has the following col
Not connecting to DB using ruby, error:env.c:257:in oci8lib.so: ORA-12154:
Hi All,
I am trying to connect to the database server from the client server using ruby and f
Contact Form Not Working When I Add Validation Codes
So I built my first working PHP "Contact Us" like form. But, I have been trying to now mak