词条 | 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 参考文献 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。