Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

UDP - recvfrom() call

Posted on 2000-04-04
7
Medium Priority
?
483 Views
Last Modified: 2008-03-17
There are two simple programs: A, and B communicating through UDP (socket() called with SOCK_DGRAM). A just bounces all datagrams.
B sends a datagram to A, calls recvfrom and then
examines the sockaddr *from field.

Depedning on:
a) sockaddr_in declaration or allocation
b) recvfrom calling point
c) B's compilation host
I'm getting different results:

Compiled on my machine (RH 6.1):

sockaddr_in  | recvfrom()     | result
-----------------------------
main()          | main()           | A's address
answer0()     | answer0()      | EINVAL
B.c              | answer1()      | 0.0.0.0
malloc()        | answer2()     | EINVAL

Compiled on my university host:

sockaddr_in  | recvfrom()     | result
--------------------------
main()          | main()           | A's address
answer0()     | answer0()      | 0.0.0.0
B.c              | answer1()      | 0.0.0.0
malloc()        | answer2()     | 0.0.0.0

I don't like the idea of putting all my code
in main(), so hope there's someone who has
at least the slightest idea about what's going
on and how to make it work. I'll provide any
additional information, if it is necessary.

Sources of A and B are here: http://rainbow.mimuw.edu.pl/~robson/AB.tgz 
0
Comment
Question by:Robson
[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
  • 4
  • 3
7 Comments
 
LVL 2

Expert Comment

by:munsie
ID: 2685755
the code would be very helpful, if you don't mind... i have a few ideas, but I would like to see what A and B are doing.

thanks,
dennis
0
 
LVL 4

Author Comment

by:Robson
ID: 2686743
I've put sources of A and B at http://rainbow.mimuw.edu.pl/~robson/AB.tgz
0
 
LVL 4

Author Comment

by:Robson
ID: 2686751
Edited text of question.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 2

Accepted Solution

by:
munsie earned 1200 total points
ID: 2687360
in your get_answer2() routine, you didn't set the length field to be the sizeof(answer).  Actually, you didn't do this in multiple places...

set length before calling recvfrom() will fix your problem.

good luck,
dennis
0
 
LVL 4

Author Comment

by:Robson
ID: 2687763
Thank's a lot, dennis!
This requirement isn't mentioned either in man page, nor in Steven's book (I 've nearly broken its cover in anger). Also in example programs given by my network-programming teacher (he's going to score some, too) initialization isn't made.

Last, but not least:
I MISSED GREAT SCI-FI CONVENTION BECAUSE OF THIS EFFING BUG!
0
 
LVL 2

Expert Comment

by:munsie
ID: 2687971
glad it helped... sorry about the sci-fi convention, though

dennis
0
 
LVL 4

Author Comment

by:Robson
ID: 2688162
NOTE: I was wrong about Stevens' "Un*x Network Programming" - it explains this problem. I promise to read it carefully and with respect - and no more violence, of course :-).  
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

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

Have you ever been frustrated by having to click seven times in order to retrieve a small bit of information from the web, always the same seven clicks, scrolling down and down until you reach your target? When you know the benefits of the command l…
The purpose of this article is to demonstrate how we can upgrade Python from version 2.7.6 to Python 2.7.10 on the Linux Mint operating system. I am using an Oracle Virtual Box where I have installed Linux Mint operating system version 17.2. Once yo…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…

610 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