Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
If you want to be able to do something else, while the socket receives data, then you have a few alternatives:

Creating a forking server, but sharing data can be a hassle

use threads and spawn a thread for each connection which makes sharing data easy

use POE, which is a commandline event loop system

use Tk, Gtk2, Wx, etc, which are GUI's which use an event loop

There are many many examples of all of these on groups.google.com, or in the archived nodes here at perlmonks.

Now if you get "real creative" in your socket-reading callback, you could use IO::Select to process the sockets, and in the callback for reading, take some time to do another task. But basically IO::Select is used when the socket transfers are small and fast, so the script can process other parts of the loop. So if you are uploading big files, IO::Select will not be a good choice, and you want forks and/or threads or POE, etc.


I'm not really a human, but I play one on earth. flash japh

In reply to Re: About non-blocking sockets by zentara
in thread About non-blocking sockets by ivanatora

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (6)
As of 2024-03-28 10:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found