Download presentation
Presentation is loading. Please wait.
Published by郎鳜 糜 Modified 7年之前
1
第17章 网络编程实例——局域网通信软件 Java语言具有非常强大的网络应用开发能力。本章通过实现一个简单的局域网通信软件,展示了Java语言网络编程知识在实际系统开发过程中的具体应用。本章实例主要涉及以下知识点。 Java网络编程知识; Java图形界面编程知识。 通过学习本章实例,读者需要重点掌握Java语言网络编程知识的具体应用。
2
17.1 实例概述 本章的实例将开发一款用于局域网内通信的软件。该通信软件采用“客户端/服务器”模式。服务器负责提供通信服务,如建立连接、处理请求数据等,并能与客户机对等的交互发送消息。客户机可以向服务器发送连接请求。连接建立后可以与服务器互发消息进行通信。该软件的工作流程大致如图17-1所示。
3
17.2 系统设计 对系统需求进行了充分的分析之后,在具体开发之前需要进行一下总体设计。系统设计包括系统总体结构、构建开发环境、确定系统工程目录这几个方面,下面分别对其进行介绍。
4
17.2.1 系统总体结构 在对整个系统进行需求分析后,将系统功能划分为服务器端程序和客户端程序两大块。系统的功能结构图如图17-2所示。
系统总体结构 在对整个系统进行需求分析后,将系统功能划分为服务器端程序和客户端程序两大块。系统的功能结构图如图17-2所示。 其中,服务器端程序主要用于监听客户端的连接请求,连接建立后能够与客户端进行通信。客户端程序负责向服务器发出连接请求,连接建立后能够与服务器端进行通信。另外,两端的程序在一方断开后都能自动向对方发送信息提示。
5
构建开发环境 本系统是Java网络编程方面应用的实例。对于通信过程中的数据没有进行持久性保存,所以不需采用数据库系统。根据系统的实际情况,采用如下开发环境: 操作系统:Windows XP; 编程语言:JDK 6.0; 开发工具:Eclipse 3.2。
6
系统工程目录 在开发一个实际的应用系统的时候,应该规划好系统工程的文件结构。有规划的工程文件结构便于在开发过程中进行管理,也使得开发工作的内容更加清晰。系统的工程名称为jywtx,所包含的文件夹及功能包主要有以下几个方面。 src目录:用于存放系统的所有源代码。源代码按照包结构进行组织。 business包:存放业务实现类。 util包:存放系统的实用工具类,为其他包共用。 window包:存放系统的图形界面窗口类。
7
17.3 公共模块 在系统开发过程中,经常需要设计一些公共模块,供系统中其他模块共同调用。本系统的公共模块主要由util包来实现。util包主要用于存放一些实用工具类,系统所有模块中经常需要使用的一些工具类或系统常量等可以在该包中定义。本系统的util包只定义了一个Constant类,用于定义系统常量。
8
17.4 服务器端程序 服务器端程序主要用于监听客户端的连接请求。当客户端请求连接后能够处理请求信息,连接建立后能够与客户端进行通信等。
9
工作流程 服务器端程序的工作流程图如图17-4所示。
10
源程序 服务器端程序主要由business包的Server.java和window包的ServerFrame.java两个文件组成。下面分别是其对应的源程序。Server.java文件主要实现局域网通信中服务器端的功能。
11
17.4.3 程序解释 下面对上述源程序中的关键实现部分给于重点说明。
程序解释 下面对上述源程序中的关键实现部分给于重点说明。 (1)程序入口为Server类的main方法。main方法创建了Server类的实体。服务器端界面的生成和监听服务的启动都是在Server类的构造方法中完成的。 (2)Server类的构造方法中首先创建了图形界面ServerFrame类的实体,并将其设置为可见。 (3)显示完图形界面后,Server类的构造方法调用startServer()方法启动服务。startServer()方法实现了端口监听、建立连接、通信等服务器端程序的主要核心业务。所以它也是服务器端程序的实现重点。 (4)startServer()方法首先创建了ServerSocket类的实例,开始监听指定端口。 (5)待接收到客户端的连接请求后,程序在图形界面上显示相关的连接信息。 (6)服务器端程序接收到退出连接的消息后,退出无限循环。
12
17.5 客户端程序 比较服务器端来说,客户端程序相对简单。客户端程序主要用于向服务器端发出连接请求,连接建立后能够与服务器端进行通信。
13
17.5.1 工作流程 客户端程序的工作流程图如图17-10所示。 下面对上述流程图做下简要说明。
工作流程 客户端程序的工作流程图如图17-10所示。 下面对上述流程图做下简要说明。 (1)客户端端以指定主机、指定端口号为参数,创建一个Socket对象。 (2)向服务器端发出连接请求。连接成功建立后返回Socket对象。 (4)使用Socket对象创建输入、输出流对象。使用流对象的方法完成向服务器端发送和接受数据。 (5)通信完毕后,关闭和服务器端通信的流和通信的Socket。
14
源程序 客户端程序主要由business包的Client.java和window包的ClientFrame.java两个文件组成。下面分别是其对应的源程序。Client.java文件主要实现局域网通信中客户端的功能。
15
17.5.3 程序解释 下面对上述源程序中的关键实现部分给于重点说明。
程序解释 下面对上述源程序中的关键实现部分给于重点说明。 (1)程序入口为Client类的main()方法。main()方法创建了Client类的实体。客户端界面的生成和通信程序的启动都是在Client类的构造方法中完成。 (2)Client类的构造方法中首先创建了图形界面ClientFrame类的实体,并将其设置为可见。 (3)显示完图形界面后,Client类的构造方法调用startClient()方法启动通信程序。 (4)startClient()方法首先创建了Socket类的实例,用于请求指定服务器及指定端口的连接。 (5)与服务器端成功建立连接后,即可以向服务器发送消息进行通信。 (6)客户端程序接收到退出连接的消息后,退出无限循环,结束当前客户端的连接,并在图形界面上显示相关信息。
16
17.6 小结 本章实例是针对第十四章——Java网络编程知识给出的一个较完整的综合实例。该实例实现了一个简单的局域网通信软件,所涉及的知识点包括Java网络编程相关知识及Java图形界面。其中,读者要重点掌握的是Java网络编程知识的具体应用。灵活使用Java语言的网络编程知识,能够开发出更加复杂、强大的应用系统。下一章将介绍Java语言Web编程实例。
Similar presentations