Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

comment on

( [id://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

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 surveying the Monastery: (3)
As of 2024-04-20 07:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found