当前位置:在线查询网 > 在线百科全书查询 > Perl网络编程

Perl网络编程_在线百科全书查询


请输入要查询的词条内容:

Perl网络编程




基本信息


原书名: Network Programming With Perl原出版社: Addison-Wesley

作者: (美)Lincoln D.Stein

译者: 王超 刘云

丛书名: 科海电脑技术丛书

出版社:清华大学出版社

ISBN:7302052891

上架时间:2002-3-25

出版日期:2002 年3月

页码:582

版次:1-1

内容简介


这是一本使用Perl编程语言创建基于网络的应用程序的指导书。

全书内容分为四个部分:基础知识,为公共服务开发客户,开发TCP客户/服务器系统和高级主题。本书的目的是教会读者利用最新版Perl为TCP/IP提供的接口,创建健壮、易维护且高效的客户/服务器应用程序,核心内容是设计基于TCP的客户/服务器系统的方法和选择以及用于特定应用的高级技术。

全书层次分明,内容由浅入深,实例丰富,并给出了具有实际指导意义的源代码。因此,对于网络管理员和广大Perl初中级程序员来说,本书是一种重要的资源。

目录


第1部分基础知识

第1章 输入输出基础

1.1 perl和网络

l.1.l 为进程间通信建立的语言

1.1.2 为文本处理建立的语言

1.1.3 开放源代码项目

1.1.4 面向对象网络扩展

1. 1.5 安全

1.1.6 性能

1.2 轻松上网

1.3 文件句柄

1.3.l 标准文件句柄

1. 3.2 输入和输出操作

1.3.3 检测文件尾

1.3. 4 行尾之处的混乱

1.3. 5 打开和关闭文件

1. 3.6 缓冲和阻塞

l.3.7 标推i/o缓冲

1.3. 8 传递和存储文件句柄

1.3. 9 错误检测

.1.4. 使用io::handle模块和io::file模块的面向对象语法

l.4.l 对象和引用

1.4.2 io::handle模块和io::file模块

1.5 小结

第2章 进程、管道和信号

2.l 进程

2.1.l 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.l 客户、服务器和协议

3.l.1 协议

3. 1.2 面向二进制和面向文本的协议

3.2 berkeley套接字

3.2.l 套接字分析

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.l 将主机名转换为ip地址

3. 5.2 主机名转换示例

3. 5. 3 获取协议和服务的相关信息

3. 5.4 再访dnyhme客户

3.5.5 网络信息的其他资源

3.6 网络分析工具

3. 6.l 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

3.6.8 net_toolbox

3. 7 小结

实4章 tcp协议

4.l 一个tcp echo客户

4.2 外出连接相关的套接字函数

4.3 一个tcp echo服务器

4. 3. 1 进入连接相关的套接字函数

4.3. 2 tcp_echo_servl的局限性

4.4 调整套接字选项

4.4.l 通用的套接字选项

4.4.2 so_reuseaddr套按字选项

4.4.3 fcntl()函数和ioctl()函数

4.5 其他套接字相关的函数

4. 6 tcp信中的异常情况

4.6.l 调用connect()过程中的异常

4.6.2 读操作和写操作中的异常

4.7 小结

第5章 io:: socket api

5. l 使用io:: socket

5.1.l 一个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.l 一个唠叨的客户,第一次尝试

5.5.2 一个唠叨的客户,第二次尝试

5.6 小结

第2部分为公共服务开发客户

第6章 ftp和telnet

6.1 net:: ftp

6.1.l 一个net::ftp例子

6.1.2 ftp和基于命令的协议

6.1. 3 net::ftp api

6. 1.4 一个目录镜像脚本

6.2 net:: telnet

6. 2.l 一个简单的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.l 邮件模块简介

7. 2 net:: smtp

7.2. 1 smtp协议

7. 2.2 nct::smtp api

7. 2.3 使用net::smtf

7.3 mailtools

7. 3.l 使用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.l.3 通过pop检索并处理mime消息

8.1.4 pop_fetch脚本

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.l http::request

9.2.2 htrp::response

9.2.3 lwp::useragen

9.3 lwp实例

9.3.l 抓取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.l 格式化html

9.4.2 html::formatter api

9.4.3 html::treebuilderapi

9.4.4 从get_url脚本返回格式化的html

9.4. 5 html.::parser模块

9.4. 6 使用html::parser

9.4.7 html::parserapi

9.4.8 使用html::parser的search_rfc

9.4.9 从远程url中提取图像

9.5 小结

第3部分 开发tcp客户/服务器

第10章 创建子进程的服务器和inetd守护进程

10.l 并行的标准技术

10.1.l 创建于进程的服务器

10.1.2 多线程服务器

10.l.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.l 使用inetd

10.7. 2 在wait模式中使用inetd

10.8 小结

第11章 多线程应用程序

11. l 关于线程

11.1.l 线程是试验性的

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.l 内置的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.l 创建无阻塞i/o句柄

13.1.l 创建无阻塞句柄:函数接口

13.1.2 创建无阻塞句柄:面向对象接口

13.2 使用无阻塞句柄

13.2.l 对无阻塞文件旬柄调用sysread()

13. 2. 2 对无阻塞文件句柄调用syswrite()

13. 3 使用无阻塞文件旬柄执行面向行的i/o

13. 3. 1 使用io::gedine

13. 3.2 io::getline模块

13.4 一个普通的无阻塞uo模块

13.4.l 一个无阻塞的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.l 对主脚本的改变

14.5.2 对daemon模块的改变

14. 6 小结

第15章 预创建于进程和预创建线程

15.l 预创建于进程

15.l.l 一个web服务器

15.l.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.l 一个线程化的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.l 一个日期时间客户程序

18.2 创建并使用udp套接字

18. 2.l 创建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.l 一个逆转回显的udp服务器

18.6.2 udp客户回显程序

18. 7 让udp应用程序更加健壮

18. 7.l 让udp接收过程超时

18.7.2 复制数据报和乱序数据报

18. 8 小结

第19章 udp服务器

19.l 一个internet聊天系统

19.1.l 一个会话示例

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.l 在聊天系统中添加still_here事件

19. 4.2 对chatobjects::chatcodes模块的修改

19.4.3 chatobjects::timeduser子类

19.4.4 修改后的chat_client程序

19.4.5 修改后的chat_server程序

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.l 组播的基本知识

21.1.l 保留的组播地址

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.l 面向函数的unix域套接字接口

22.1.2 面向对象的unix域套按字接口

22.l.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 参考文献