Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

I love O'reilly. But I also love Addison Wesley. Lincoln D. Stein's newest title under Addison Wesley is a massive collection of examples and explanations of the how's and why's of network programming.

For the advanced network programmer, there is probably not much to offer - although there is always some little detail that even the most experienced guru will overlook. Such is the nature of our trade. With so much information, it's hard to learn it all - and especially if you are an initiate, it seems impossible. This book manages to be a great introduction AND a great reference book at the same time - 650 pages total (not including appendices and the index).

But for those who are not gurus in network programming, this is the book to start with.

Network Programming With Perl starts off not with networks, but instead with basic I/O. Stein shows how a Perl script that reads from a socket is very similar to one that reads from a local filehandle (actually, only one line is different). The concepts of blocking and buffering are covered within chapter 1 - pipes, signals, and forking are covered in chapter 2. Once these basic building blocks are understood by the reader, the rest of the material in the book becomes much clearer.

Many useful CPAN modules are covered in this book:

  • IO::File, IO::Handle, IO::Socket,
  • Socket
  • Net::Ftp, Net::Telnet, Net::SMTP
  • LWP
  • HTML::Parser
  • and many, many more

The first four chapters are the basics, the next five serve as a cookbook for writing various TCP/IP clients, such as FTP, POP, and LWP user agents. Chapters 10 through 16 cover the meat and potatoes of server programming: forking servers, daemons, inetd, some experimental 5.005 version multi-threading, multiplexing with IO::Select, nonblocking I/O, and a whole chapter on 'bullet-proofing' server code.

The last chapters cover more specialized areas, such as UDP chat servers, broadcasting, and multicasting. I wish an example of multicasting mp3's across a network would have been covered, but with the infomation provided, coding such an application should prove to be fairly simple.

The layout of the book is wonderful. There are many examples of code, and I really like the way various function explanations are presented. Platform independance is a goal in this book. Windows and Macintosh are covered as well as Unix, but the last chapter is dedicated soley to Unix: Unix-Domain sockets.

Network Programming With Perl covers some of the same material that can be found in the Perl Cookbook, but it has a clear direction that will prove to be beneficial to anyone wishing to travel it.

In reply to Network Programming With Perl by jeffa

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, 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
  • 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.
  • Log In?

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

    How do I use this? | Other CB clients
    Other Users?
    Others cooling their heels in the Monastery: (4)
    As of 2021-04-14 23:39 GMT
    Find Nodes?
      Voting Booth?

      No recent polls found