as soon as the child attempts to recv() from the server to check for messages - the parent stops and the tcp connection appears broken.

You cannot send from a socket whilst it is blocked in a recv.

That is, you cannot both send to & recv from (one end of) a socket simultaneously.

You can simulate something like it, by setting the socket non-blocking; and polling the socket (select) to determine if there is anything to be read; and only attempting a recv if there is; thus keeping the time spent in the recv state to a minimum and maximising the time when a send will complete successfully.

But this comes at the expense of forcing your application into operating like a party line. Something most monks will be too young to remember. Heck. I only vaguely remember the concept.

But then again, things have a habit of going full circle. For a while there -- roughly the '80s to mid '90s -- companies had these amazingly magical devices called "answer phones" (for the younger amongst you, think "voice mail").

If you called them, and they were out or too busy to take the call, you left them your name and telephone number; and they called you back. Simples.

Now -- for "our convenience and satisfaction" the inanimate voice lies -- we have to poll the damn phone listening to that awful tiny, usually out-of-date, and always cheesy musac interminably, all the time hoping that same inanimate voice won't come back and lie to us again:


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?


In reply to Re: recv() on forked process by BrowserUk
in thread recv() on forked process by Rudolf

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!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • 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, details, 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, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            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.