Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

I'm looking to find a way to receive a UDP packet via interrupts vs. some form of polling in C.  I am trying to minimize CPU resources as much as possible.  Thanks!

Posted on 2009-04-04
1
Medium Priority
?
288 Views
Last Modified: 2013-11-29
I'm looking to find a way to receive a UDP packet via interrupts vs. some form of polling in C.  I am trying to minimize CPU resources as much as possible.  Thanks!
0
Comment
Question by:rounders1086
1 Comment
 
LVL 40

Accepted Solution

by:
mrjoltcola earned 2000 total points
ID: 24068148
1) select() with reasonable timeout value is a great, simple way to poll while not blocking indefinitely. select() for 100 milliseconds at a time lets your loop process 10 times a second if needed. If a packet arrives, the select will return immediately without waiting for 100ms.

2) A thread that just issues a blocking read()/recvfrom() is probably as cpu minimal as you can get.

Are you only interested in processes the packet, or are there other tasks that must be carried out in parallel? If so, either option above will work, but if you want to completely decouple the tasking so a long-running background task does not block the network messaging, go with a thread.

There are a few other ways, like async io receiving SIGIO to your process, then you still have to call select() to find which descriptor is ready. I prefer alternatives above to that.

If these aren't satisfactory there are other ways, including Linux non-portable ways.
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

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

A few months ago I attended the Rocky Mountain IPv6 Summit which was a two-day educational event; it was the 3rd annual conference held here in Denver, Colorado that was held at the Hyatt Regency Denver at the Colorado Convention Center. It was an e…
The purpose of this article is to fix the unknown display problem in Linux Mint operating system. After installing the OS if you see Display monitor is not recognized then we can install "MESA" utilities to fix this problem or we can install additio…
The goal of this video is to provide viewers with basic examples to understand and use switch statements in the C programming language.
After creating this article (http://www.experts-exchange.com/articles/23699/Setup-Mikrotik-routers-with-OSPF.html), I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…
Suggested Courses

824 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