Solved

invalid argument in sendto

Posted on 2009-05-07
4
496 Views
Last Modified: 2012-08-13
anyone care to tell me why? code compiles fine but when trying to run the send to gives me an Invalid Argument in the errno
int sock_fd;
 
AARP_Packet* tempAARP = (AARP_Packet*) malloc(sizeof(AARP_Packet));
 
/*how I initialize the aarp_sockaddr port is defined but not shown here*/
bzero((char *)&aarp_sockaddr,sizeof(aarp_sockaddr));
aarp_sockaddr.sin_family = AF_INET;
bcopy(hp->h_addr_list[0], (char *)&aarp_sockaddr.sin_addr,hp->h_length);
aarp_sockaddr.sin_port = htons(port);
 
flag = sendto(sock_fd, (void*)tempAARP, sizeof(AARP_Packet), 0, (struct sockaddr *)&aarp_sockaddr, sizeof(aarp_sockaddr));
			if (flag == -1){
				perror("Error: Sending AARP Packet failed \n");
				close(sock_fd);
				exit(1);
			}

Open in new window

0
Comment
Question by:kuntilanak
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 40

Expert Comment

by:mrjoltcola
ID: 24331177
Your sample shows sock_fd is never initialized, or opened, so likely sendto is complaining of a bad descriptor.
0
 

Author Comment

by:kuntilanak
ID: 24331216
I actually did, just forgot to put it above
/* create socket */
	sock_fd = socket(PF_INET,SOCK_DGRAM,0);
	if (sock_fd < 0)
	{
		perror("Error: Socket creation failed\n");
		exit(1);
	}

Open in new window

0
 
LVL 40

Accepted Solution

by:
mrjoltcola earned 500 total points
ID: 24331594
Where is .sin_port initialized and to what value? Your comment is before the bzero() call, so I hope you are setting the port after the bzero?
0
 

Author Comment

by:kuntilanak
ID: 24331679
oh that's the problem.. thanks for pointing that out :)
0

Featured Post

Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The purpose of this article is to demonstrate how we can use conditional statements using Python.
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

632 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question