| |
| |
Preface | |
| |
| |
| |
Basics | |
| |
| |
| |
Input/Output Basics | |
| |
| |
Perl and Networking | |
| |
| |
Networking Made Easy | |
| |
| |
Filehandles | |
| |
| |
Using Object-Oriented Syntax with the IO::Handle and IO::File Modules | |
| |
| |
Summary | |
| |
| |
| |
Processes, Pipes, and Signals | |
| |
| |
Processes | |
| |
| |
Pipes | |
| |
| |
Signals | |
| |
| |
Summary | |
| |
| |
| |
Introduction to Berkeley Sockets | |
| |
| |
Clients, Servers, and Protocols | |
| |
| |
Berkeley Sockets | |
| |
| |
Socket Addressing | |
| |
| |
A Simple Network Client | |
| |
| |
Network Names and Services | |
| |
| |
Network Analysis Tools | |
| |
| |
Summary | |
| |
| |
| |
The TCP Protocol | |
| |
| |
A TCP Echo Client | |
| |
| |
Socket Functions Related to Outgoing Connections | |
| |
| |
A TCP Echo Server | |
| |
| |
Adjusting Socket Options | |
| |
| |
Other Socket-Related Functions | |
| |
| |
Exceptional Conditions during TCP Communications | |
| |
| |
Summary | |
| |
| |
| |
The IO: Socket API | |
| |
| |
Using IO::Socket | |
| |
| |
IO::Socket Methods | |
| |
| |
More Practical Examples | |
| |
| |
Performance and Style | |
| |
| |
Concurrent Clients | |
| |
| |
Summary | |
| |
| |
II | |
| |
| |
| |
FTP and Telnet | |
| |
| |
Net::FTP | |
| |
| |
Net::Telnet | |
| |
| |
Summary | |
| |
| |
| |
SMTP: Sending Mail | |
| |
| |
Introduction to the Mail Modules | |
| |
| |
Net::SMTP | |
| |
| |
MailTools | |
| |
| |
MIME-Tools | |
| |
| |
Summary | |
| |
| |
| |
POP, IMAP, and NNTP: Processing Mail and Netnews | |
| |
| |
The Post Office Protocol | |
| |
| |
The IMAP Protocol | |
| |
| |
Internet News Clients | |
| |
| |
A News-to-Mail Gateway | |
| |
| |
Summary | |
| |
| |
| |
Web Clients | |
| |
| |
Installing LWP.LWP Basics | |
| |
| |
LWP Examples | |
| |
| |
Parsing HTML and XML | |
| |
| |
Summary | |
| |
| |
III | |
| |
| |
| |
Forking Servers and the inetd Daemon | |
| |
| |
Standard Techniques for Concurrency | |
| |
| |
Running Example: A Psychotherapist Server | |
| |
| |
The Psychotherapist as a Forking Server | |
| |
| |
A Client Script for the Psychotherapist Server | |
| |
| |
Daemonization on UNIX Systems | |
| |
| |
Starting Network Servers Automatically | |
| |
| |
Using the inetd Super Daemon | |
| |
| |
Summary | |
| |
| |
| |
Multithreaded Applications | |
| |
| |
About Threads | |
| |
| |
A Multithreaded Psychiatrist Server | |
| |
| |
A Multithreaded Client | |
| |
| |
Summary | |
| |
| |
| |
Multiplexed Applications | |
| |
| |
A Multiplexed Client | |
| |
| |
The IO::Select Module | |
| |
| |
A Multiplexed Psychiatrist Server | |
| |
| |
Summary | |
| |
| |
| |
Nonblocking I/O | |
| |
| |
Creating Nonblocking I/O Handles | |
| |
| |
Using Nonblocking Handles | |
| |
| |
Using Nonblocking Handles with Line-Oriented I/O | |
| |
| |
A Generic Nonblocking I/O Module | |
| |
| |
Nonblocking Connects and Accepts | |
| |
| |
Summary | |
| |
| |
| |
Bulletproofing Servers | |
| |
| |
Using the System Log | |
| |
| |
Setting User Privileges | |
| |
| |
Taint Mode | |
| |
| |
Using chroot() | |
| |
| |
Handling HUP and Other Signals | |
| |
| |
Summary | |
| |
| |
| |
Preforking and Prethreading | |
| |
| |
Preforking | |
| |
| |
Prethreading | |
| |
| |
Performance Measures | |
| |
| |
Summary | |
| |
| |
| |
IO::Poll | |
| |
| |
Using IO::Poll | |
| |
| |
IO::Poll Methods | |
| |
| |
A Nonblocking TCP Client Using IO::Poll | |
| |
| |
Summary | |
| |
| |
IV | |
| |
| |
| |
TCP Urgent Data | |
| |
| |
"Out-of-Band" Data and the Urgent Pointer | |
| |
| |
Using TCP Urgent Data | |
| |
| |
The sockatmark() Function | |
| |
| |
A Travesty Server | |
| |
| |
Summary | |
| |
| |
| |
The UDP Protocol | |
| |
| |
A Tim | |