Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
You should only ever use polling if there is absolutely no other way to do it. Any (OK, almost any) other method is going to be more efficient.

Waiting at the socket isn't actually your biggest problem. Your problem is in the callback functions you're dispatching. If you can't guarantee that no callback function will use more than 1/100 of a second, you can't guarantee 100 messages per second in a single threaded server.

The easy way of doing such a server is to block waiting for a new packet, then spawn a thread (or a process) to handle it.

The more sophisticated servers (Apache, for instance) have dispatching mechanisms that apportion requests to pre-spawned processes so that the spawning doesn't delay processing.

Of course, the faster your server, the more complex is the dance required to keep all the components fed and synced.

I'm afraid that for Portable/Fast/Simple you will be lucky to get two out of three.


In reply to Re: Efficient non-blocking UDP server by matija
in thread Efficient non-blocking UDP server by crenz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others surveying the Monastery: (10)
    As of 2014-09-02 18:26 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      My favorite cookbook is:










      Results (29 votes), past polls