注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计网络编程Perl网络编程

Perl网络编程

Perl网络编程

定 价:¥62.00

作 者: (美)Lincoln D.Stein著;王超,刘云译;王超译
出版社: 清华大学出版社
丛编项: 科海电脑技术丛书
标 签: perl

ISBN: 9787302052890 出版时间: 2002-03-01 包装: 胶版纸
开本: 26cm 页数: 582 字数:  

内容简介

  这是一本使用Perl编程语言创建基于网络的应用程序的指导书。全书内容分为四个部分:基础知识,为公共服务开发客户,开发TCP客户/服务器系统和高级主题。本书的目的是教会读者利用最新版Perl为TCP/IP提供的接口,创建健壮、易维护且高效的客户/服务器应用程序,核心内容是设计基于TCP的客户/服务器系统的方法和选择以及用于特定应用的高级技术。全书层次分明,内容由浅入深,实例丰富,并给出了具有实际指导意义的源代码。因此,对于网络管理员和广大Perl初中级程序员来说,本书是一种重要的资源。

作者简介

暂缺《Perl网络编程》作者简介

图书目录

第1部分基础知识
第1章 输入输出基础
1.1 Perl和网络
1.1.1 为进程间通信建立的语言
1.1.2 为文本处理建立的语言
1.1.3 开放源代码项目
1.1.4 面向对象网络扩展
1.1.5 安全
1.1.6 性能
1.2 轻松上网
1.3 文件句柄
1.3.1 标准文件句柄
1.3.2 输入和输出操作
1.3.3 检测文件尾
1.3.4 行尾之处的混乱
1.3.5 打开和关闭文件
1.3.6 缓冲和阻塞
1.3.7 标推I/O缓冲
1.3.8 传递和存储文件句柄
1.3.9 错误检测
1.4.使用IO::Handle模块和IO::File模块的面向对象语法
1.4.1 对象和引用
1.4.2 IO::Handle模块和IO::File模块
1.5 小结
第2章 进程、管道和信号
2.1 进程
2.1.1 fork()函数
2.1.2 System()函数和exee()函数
2.2 管道
2.2.1 打开管道
2.2.2 使用管道
2.2.3 易用的管道:反引号运算符
2.2.4 强大的管道:pipe()函数
2.2.5 双向管道
2.2.6 从一般的文件句柄中区分管道
2.2.7 可怕的PIPE错误
2.3 信号
2.3.1 通用信号
2.3.2 截取信号
2.3.3 处理PIPE异常
2.3.4 发送信号
2.3.5 对信号处理程序的忠告
2.3.6 让慢的系统调用超时
2.4 小结
第3章 Berkeley套接字简介
3.1 客户、服务器和协议
3.1.1 协议
3.1.2 面向二进制和面向文本的协议
3.2 Berkeley套接字
3.2.1 套接字分析
3.2.2 数据报套按字
3.2.3 流套接字
3.2.4 数据报套接字与流套接字
3.3 套接字寻址
3.3.1 IP地址
3.3.2 保留IP地址、子网和网络掩码
3.3.3 IPv6
3.3.4 网络端口
3.3.5 sockaddr_in结构
3.4 一个简单的网络客户
3.5 网络名和服务
3.5.1 将主机名转换为IP地址
3.5.2 主机名转换示例
3.5.3 获取协议和服务的相关信息
3.5.4 再访dnyhme客户
3.5.5 网络信息的其他资源
3.6 网络分析工具
3.6.1 ping
3.6.2 nslookup
3.6.3 traceroute
3.6.4 netstat
3.6.5 tcpdump
3.6.6 MacTCP Watcher
3.6.7 scanner.exe
3.6.8 net_toolbox.exe
3.7 小结
第4章 TCP协议
4.1 一个TCP echo客户
4.2 外出连接相关的套接字函数
4.3 一个TCP echo服务器
4.3.1 进入连接相关的套接字函数
4.3.2 tcp_echo_serv1.pl的局限性
4.4 调整套接字选项
4.4.1 通用的套接字选项
4.4.2 SO_REUSEADDR套按字选项
4.4.3 fcntl()函数和ioctl()函数
4.5 其他套接字相关的函数
4.6 TCP信中的异常情况
4.6.1 调用connect()过程中的异常
4.6.2 读操作和写操作中的异常
4.7 小结
第5章 IO:: Socket API
5.1 使用IO:: Socket
5.1.1 一个daytime客户
5.1.2 TCP echo客户
5.2 IO:Socoke方法
5.2.1 IO::Handle类层次
5.2.2 创建IO:Socoket::INET对象
5.2.3 IO:: Socket对象方法
5.3 更实用的例子
5.3.1 再访逆转的echo服务器
5.3.2 一个Web客户
5.4 性能和风格
5.5 并发客户
5.5.1 一个唠叨的客户,第一次尝试
5.5.2 一个唠叨的客户,第二次尝试
5.6 小结
第2部分为公共服务开发客户
第6章 FTP和Telnet
6.1 Net:: FTP
6.1.1 一个Net::FTP例子
6.1.2 FTP和基于命令的协议
6.1.3 Net::FTP API
6.1.4 一个目录镜像脚本
6.2 Net:: Telnet
6.2.1 一个简单的Net::Telnet例子
6.2.2 Net:: Telnet API
6.2.3 一个远程改变密码的程序
6.2.4 对非Teinet协议使用Net::Telnet
6.2.5 Expect模块
6.3 小结
第7章 SMTP:发送邮件
7.1 邮件模块简介
7.2 Net:: SMTP
7.2.1 SMTP协议
7.2.2 NCt::SMTP API
7.2.3 使用Net::SMTF
7.3 MailTools
7.3.1 使用MailTools
7.3.2 Mail:: Header
7.3.3 Mai1::Internet
7.3.4 一个邮件自动响应程序
7.3.5 Mail::Mailer
7.4 MIME.Tools
7.4.1 MIME简介
7.4.2 MIME::"模块的组织
7.4.3 MIME:: Entity
7.4.4 MIME:: Head
7.4.5 MIME:: Body
7.4.6 MIME:: Patser
7.4.7 MIME例子:邮寄新近的CPAN项
7.5 小结
第8章 POP,IMAP和NNTP:处理邮件和网络新闻
8.1 POP
8.1.1 POP3邮箱概述
8.1.2 Net::POP3 API
8.1.3 通过POP检索并处理MIME消息
8.1.4 pop_fetch.pl脚本
8.1.5 PopParser模块
8.2 IMAP协议
8.2.1 IMAI,邮箱概述
8.2.2 Net::IMAP::Simple API
8.3 Internt新闻客户
8.3.1 Net::NNTP
8.3.2 Net::NNTP API
8.4 一个新闻到邮件的网关
8.5 小结
第9章 Web客户
9.1 安装LWP
9.2 LWP基础知识
9.2.1 HTTP::Request
9.2.2 HTrp::Response
9.2.3 LWP::UserAgen
9.3 LWP实例
9.3.1 抓取RFC列表
9.3.2 镜像RFC列表
9.3.3 模拟填充表单
9.3.4 使用HTTP::Request::Commn发送填充表单
9.3.5 使用multipart/form-data的文件上传
9.3.6 抓取有密码保护的页面
9.4 解析HTML和XML
9.4.1 格式化HTML
9.4.2 HTML::Formatter API
9.4.3 HTML::TreeBuilderAPI
9.4.4 从get_url.pl脚本返回格式化的HTML
9.4.5 HTML.::Parser模块
9.4.6 使用HTML::Parser
9.4.7 HTML::ParserAPI
9.4.8 使用HTML::Parser的search_rfc.pl
9.4.9 从远程URL中提取图像
9.5 小结
第3部分 开发TCP客户/服务器
第10章 创建子进程的服务器和inetd守护进程
10.1 并行的标准技术
10.1.1 创建于进程的服务器
10.1.2 多线程服务器
10.1.3 多路复用服务器
10.2 运行程序的例子:心理疗法学者服务器
10.3 作为创建于进程服务器的心理疗法学者
10.3.1 僵进程
10.3.2 在CHLD处理程序中收割子进程
10.3.3 使用fork()的心理疗法学者服务器
10.3.4 在Windows平台上使用心理疗法学者服务器
10.4 心理疗法学者服务器的一个客户脚本
10.5 在UNIX系统上守护进程化
10.5.1 自动后台运行
10.5.2 PID文件
10.6 自动启动网络服务器
10.7 使用inetd超级守护进程
10.7.1 使用inetd
10.7.2 在wait模式中使用inetd
10.8 小结
第11章 多线程应用程序
11.1 关于线程
11.1.1 线程是试验性的
11.1.2 线程API
11.1.3 一个简单的多线程应用程序
11.1.4 锁定
11.1.5 Thread模块的功能和方法
11.1.6 线程和信号
11.2 一个多线程的心理疗法学者服务器
11.3 一个多线程的客户
11.4 小结
第12章 多路复用应用程序
12.1 一个多路复用的客户
12.2 IO::Select模块
12.2.1 内置的selec必函数
12.2.2 什么时候文件句柄为I/O做好推备
12.2.3 组合select()和标准I/O
12.2.4 调整“低水位线”
12.3 多路复用的心理疗法学者服务器
12.3.1 服务器主程序
12.3.2 Eliza::Chatbot::Polite模块
12.3.3 心理疗法学者服务器的问题
12.4 小结
第13章 无阻塞I/O
13.1 创建无阻塞I/O句柄
13.1.1 创建无阻塞句柄:函数接口
13.1.2 创建无阻塞句柄:面向对象接口
13.2 使用无阻塞句柄
13.2.1 对无阻塞文件旬柄调用sysread()
13.2.2 对无阻塞文件句柄调用Syswrite()
13.3 使用无阻塞文件旬柄执行面向行的I/O
13.3.1 使用IO::Gedine
13.3.2 IO::Getline模块
13.4 一个普通的无阻塞UO模块
13.4.1 一个无阻塞的echo服务器
13.4.2 一个无阻塞的面向行的服务器
13.4.3 IO::SessinnData模块
13.4.4 IO::Sessinnset模块
13.4.5 IO::LineBufferedset类和IO::LineBufferedsessinnl
13.4.6 对非套接字句柄使用IO::Sessionset
13.5 无阻塞连接和接收
13.5.1 IO::Socket超时参数
13.5.2 无阻塞connect()
13.5.3 多个同时连接
13.5.4 一个简单的HTTP客户
13.5.5 HTTPFetch模块
13.5.6 无阻塞accept()
13.6 小结
第14章 安全的服务器
14.1 使用系统日志
14.1.1 UNIX的syslog
14.1.2 Sys::Syslog
14.1.3 向心理疗法学者服务器添加日志功能
14.1.4 使用删()和出成)做日志
14.1.5 在Win32平台上使用事件日志
14.1.6 直接写日志到文件中
14.2 设置用户特权
14.2.1 改变用户ID和组ID
14.2.2 作为根用户运行心理疗法学者服务器
14.3 受损模式(Taint Mod)
14.4 使用Chroot()
14.5 处理HUP和其他信号
14.5.1 对主脚本的改变
14.5.2 对Daemon模块的改变
14.6 小结
第15章 预创建于进程和预创建线程
15.1 预创建于进程
15.1.1 一个Web服务器
15.1.2 序列化的Web服务器
15.1.3 接收并创建于进程的Web服务器
15.1.4 预创建子进程的Web服务器,版本1
15.1.5 预创建子进程的Web服务器,版本2
15.1.6 自适应的预创建于进程的服务器
15.1.7 使用共享内存的自适应的预创建于进程的服务器
15.2 预创建线程
15.2.1 一个线程化的Web服务器
15.2.2 简单的预创建线程的服务器
15.2.3 自适应的预创建线程的服务器
15.2.4 Netserver::Generic模块
15.3 性能测量
15.4 小结
第16章 IO:: Poll
16.1 使用IO::Poll
16.2 IO::Poll事件
16.3 IO::Poll方法
16.4 一个使用IO::Poll的无阻塞TCP客户
16.5 小结
第4部分高级话题
第17章 TCP紧急数据
17.1 “带外”数据和紧急指针
17.2 使用TCP紧急数据
17.2.1 SO_OOBINLINE选项
17.2.2 与select()一起使用紧急数据
17.3 sockatmark()函数
17.4 一个曲解(Travesty)服务器
17.4.1 Text::Travesty模块
17.4.2 设计曲解服务器
17.4.3 曲解客户程序
17.4.4 测试曲解服务器
17.5 小结
第18章 UDP协议
18.1 一个日期时间客户程序
18.2 创建并使用UDP套接字
18.2.1 创建UDP套接字
18.2.2 send()和recv()函数
18.2.3 绑定UDP套接字
18.2.4 连接到UDP套接字
18.3 UDP错误
18.3.1 异步错误
18.3.2 丢包和分段
18.4 使用IO::Socket处理UDP套按字
18.5 发送给多台主机
18.6 UDP服务器
18.6.1 一个逆转回显的UDP服务器
18.6.2 UDP客户回显程序
18.7 让UDP应用程序更加健壮
18.7.1 让UDP接收过程超时
18.7.2 复制数据报和乱序数据报
18.8 小结
第19章 UDP服务器
19.1 一个Internet聊天系统
19.1.1 一个会话示例
19.1.2 聊天系统的设计
19.2 聊天客户程序
19.2.1 Chatobjects::Comm模块
19.2.2 Chatobjects::ChatCodes模块
19.3 聊天服务器
19.3.1 服务器脚本主程序
19.3.2 Chatobects::User类
19.3.3 ChatobectS::Channel类
19.4 检测不响应的客户程序
19.4.1 在聊天系统中添加STILL_HERE事件
19.4.2 对ChatObjects::ChatCodes模块的修改
19.4.3 ChatObjects::TimedUser子类
19.4.4 修改后的chat_client.pl程序
19.4.5 修改后的chat_server.pl程序
19.5 小结
第20章 广播
20.1 单报和广播
20.2 广播的概念
20.3 发送和接收广播
20.3.1 发送广播
20.3.2 接收广播
20.4 没有广播地址的广播
20.4.1 全1的广播地址
20.4.2 在运行时查找具有广播能力的接口
20.4.3 IO:: Interface模块
20.4.4 IO:: Interface模块剖析
20.5 增强聊天客户程序以支持资源发现
20.6 小结
第21章 组播
21.1 组播的基本知识
21.1.1 保留的组播地址
21.1.2 组播地址和硬件过滤
21.1.3 穿过WAN的组播
21.1.4 组播TTL
21.2 使用组括
21.2.1 发送组括消息
21.2.2 用于发送组播消息的套按字选项
21.2.3 接收组播消息
21.2.4 IO::Socket::Multicast模块
21.3 组括应用程序示例
21.3.1 日期时间组括服务器
21.3.2 使用组播的日期时间客户程序
21.3.3 使用组播的聊天系统
21.4 小结
第22章 UNIX域套接字
22.1 使用UNIX域套接字
22.1.1 面向函数的UNIX域套接字接口
22.1.2 面向对象的UNIX域套按字接口
22.1.3 UNIX域套按字与文件权限
22.2 一个“换行”服务器
22.2.1 Text::Wrap服务器
22.2.2 Text::Wrap客户程序
22.3 将UNIX域套按字用于数据报
22.3.1 使用UNIX域套按字的日期时间服务器
22.3.2 使用UNIX域套接字的日期时间客户程序
22.4 小结
附录A 补充的源代码
附录B Perl的错误码和特殊变量
附录C 参考文献

本目录推荐