“网络程序设计”课程是计算机学科重要的编程课程之一,网络编程技术也成为目前非常流行的编程技术。由于该课程需要学生具有一定的编程语言基础和掌握基本网络工作原理,同时还涉及多线程、IO流等操作系统知识,对初学者具有一定的难度。
本书以培养和增强学生的动手编程实战能力为目标,对Java网络编程内容进行了精心的挑选和安排,对难点、重点进行了详细的图文阐述,力求做到深入浅出、通俗易懂。同时,本书包含了大量网络开发应用案例,通过有效的编程实验教学,培养学生程序设计思维、提升学生实战能力。
全书分为两部分: 第1部分为实验内容,共9章; 第2部分为附录。本书各章内容介绍如下。
第1章介绍数据编码和解码的基本概念、常见的字符编码以及Java语言处理字符编码的方法,目的是让读者对数据有一个初步的认识。
第2章介绍Java多线程编程技术。包括Java线程创建、线程同步、线程间通信、线程池、定时器等概念。多线程技术是网络编程的基础,也是开发高效率的网络通信程序必备技术之一,要求读者必须熟悉。
第3章重点介绍网络编程中用到的各种Java IO流。IO流是网络程序通信中读取数据的基本技术,也是后续章节用到的预备知识。本章还介绍了对象序列化技术,最后给出一个文件分割器的综合案例。
第4章介绍Java网络地址类InetAddress以及NetworkInterface类。本章知识涉及到网络地址表示、DNS解释、获取主机网络信息等内容。最后介绍一个多线程网络主机扫描综合案例,方便读者了解网络技术的应用。
第5章介绍TCP 套接字编程技术,是本书的难点和重点。本章内容包括: 文本数据传输、二进制数据传输、报文封装格式等。重点在于TCP报文粘包、TCP报文边界划分技术等。本章还介绍了文本传输、二进制传输以及序列化传输等不同传输技术,最后介绍文件服务器程序和网络聊天室的综合案例。
第6章介绍UDP编程技术和UDP报文封装技术。本章包括TCP、UDP编程区别和应用选择。最后介绍远程主机唤醒和UDP文件传输的综合案例。
第7章介绍组播编程技术并给出一个基于组播的聊天室案例。
第8章介绍JavaMail编程技术,同时给出了基于JavaMail电子邮件接收和发送示例程序。
第9章介绍基于JPcap网络报文捕获和分析应用程序,用于进行底层网络报文分析。
附录部分包括常见的TCP/IP网络协议的报文格式以及Eclipse的Swing Designer的窗体设计和控件使用。
本书的所有实验代码均在Eclipse 3.7和JDK 1.7上通过编译和正常运行。本书由何怀文组织和设计,第2~7章由何怀文编写; 第1、8~9章以及附录部分由彭政编写。何怀文负责全书审核。本书编写过程中参考了Java编程和网络编程的著作文献,同时还查阅了大量的网络资料,在此对所有的作者表示感谢。
由于编者水平有限,书中不妥和错误之处还望读者批评指正,作者联系地址为Email: he_huai_wen@aliyun.com。
编者
2015年10月