Hmm...

I am not sure why the test program didn't work for you (it works fine and dandy on this ened); you messaged me that you are running 5.005_03, but I doubt that has anything to do with it (Although it may... you never know :).

However, its not TOO surprising that some people have problems running it, since its in super-early beta, but let me explain how it works so you might be able to figure out the problem. First of all, when a new Shared::Local object is declared, a child is spawned that listens for any connection to it. If it is a valid connection with a valid header, it either recieves the information and stores it, or else sends it back if the special "retrieve" signal is sent. The Shared::Retriever is your interface to the data. Store first serializes the data, then connects to the port and address stored in the Shared::Local/Remote object, until it finally writes a header followed by the data. Retrieve works a bit differently; It starts off similarly to store, but instead of the data being sent, a collection of special characters is sent in order to signify that it should send the data back. If Shared::Local object sees these characters, the Shared::Local object then stores the port and address information, closes the connection, then connects back. In the meantime, the Retriever has since closed its side of the connection, and opened a listening port in order to recieve the information back. The information is then deserialized and returned.

About Shared::Remote: The reason you have to specify a port is for security reasons; if an attacker already knows where he has to go, that is simply less work he has do.

Thank you for bringing up the fact that zombie processes remain if for some reason the socket did not open; I will create a sub that will work similarly to destroy_all except also return a message to die. Thank god for testers :)

Also, by default, Shared lets the OS pick the port (although there is an option in the constructor to specify a specify one if you so choose.)

Finally, I'd like to thank you for taking the time out to test, I truely appreciate it.


In reply to Re: Re: Shared.pm by jryan
in thread Shared.pm by jryan

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.