I've been banging my head against this for quite a while now and I've decided I just don't have enough networking experience to figure it out on my own.

I'm trying to write a multi-user, interactive server script. I've put together a basic server using IO::Select without a huge amount of pain thanks to some excellent advice from the Monks and Lincoln D. Stein's "Network Programming with Perl" book. The way my current implementation works is by having an IO::Select switch in the main program with a module to handle the individual connections.

I'm trying to figure out a good way to make the networking modular so that if I feel like changing from IO::Select to a forking model (such as if I'm moving the code from OS to OS), I can do that with only minor changes to the code. Ideally I'd like to be able to say, for example, use MUD::Networking::Fork; instead of use MUD::Networking::Select; and have it work.

I'm starting to wonder if I haven't completely overreached my current ability trying to implement this. Any input would be appreciated.

--
Grant me the wisdom to shut my mouth when I don't know what I'm talking about.


In reply to Sockets - IO::Select, fork(), and modularity by Ionizor

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.