前言
Linux系统与互联网相伴而生,共同成长,成为现代信息技术高速发展的重要支撑和驱动力。Python作为一种开源、跨平台、面向对象的新型计算机程序设计语言,语法简洁,语义清晰,有丰富、强大的库的支持,广泛应用在网络编程、科学计算、人工智能等各个领域。两者的结合能够使读者快速理解基础理论,掌握实践技能,提高学习和工作的效率。
本书选用Ubuntu Desktop为实践平台,以Python语言为编程工具,针对互联网所使用的TCP/IP协议簇进行分层介绍和解析,并给出实际操作的程序实例。
全书共分为7章。第1章介绍Linux的历史、特点、组成、常见发行版本以及Linux常用的各种安装方式,由马栋林编写。第2章讲解Python语言的特点、开发环境安装、数据类型、语法规则、语句、函数、模块、类、对象、异常、文件等内容,由赵宏编写。第3章分层讲解TCP/IP各层主要协议、数据报文格式、层间数据交换规则、常见网络应用与各层协议的对应、程序实例等内容,由包广斌编写。第4章讲解Socket原理、SOCK_STREAM、SOCK_DGRAM、SOCK_RAW等内容,并通过程序实例演示Socket在C/S结构编程和网络嗅探中的实际应用,由赵宏和马栋林编写。第5章讲解多进程和多线程技术在网络编程中的应用,通过实例对比多进程与多线程实现方案的异同,并介绍了利用socketserver编写多进程和多线程程序的方法,最后通过GUI聊天室程序实例说明了多进程和多线程编程技术的实际应用,由包广斌和赵宏编写。第6章讲解网页内容获取、访问FTP服务器、访问DNS、收发E-mail、获取DHCP信息等实用程序的编写方法与过程,这些实例能够让读者进一步理解网络理论和工具软件的运行机制,由赵宏和包广斌编写。第7章介绍Python开发Web应用程序的方法,讲解WSGI工作原理,以流行的Web开发框架Django为例,演示Web应用程序开发工程,由赵宏和马栋林编写。
本书在编写过程中,得到兰州理工大学计算机与通信学院和信息中心各位老师的支持。硕士研究生韩泽宇、蒋家俊、张浩和王孝通帮助调试本书部分代码。
本书的编写受到兰州理工大学教学研究项目和CERNET下一代互联网技术项目(NGII20160311,NGII20160112)的资助。
因时间仓促,不足在所难免,请大家批评指正,读者可通过zhaoh@lut.edu.cn或594286500@qq.com与作者联系,也可以加入本书的QQ群643116956进行讨论。
为方便教学,作者开发了与本书相配套的多媒体课件、课后习题答案和程序代码,读者可扫描封底课件二维码下载或者向编者索取。
作 者
2018年6月于兰州理工大学