零点起飞学Java之网络编程实例局域网通信软件

上传人:宝路 文档编号:47702523 上传时间:2018-07-04 格式:PPTX 页数:20 大小:332.67KB
返回 下载 相关 举报
零点起飞学Java之网络编程实例局域网通信软件_第1页
第1页 / 共20页
零点起飞学Java之网络编程实例局域网通信软件_第2页
第2页 / 共20页
零点起飞学Java之网络编程实例局域网通信软件_第3页
第3页 / 共20页
零点起飞学Java之网络编程实例局域网通信软件_第4页
第4页 / 共20页
零点起飞学Java之网络编程实例局域网通信软件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《零点起飞学Java之网络编程实例局域网通信软件》由会员分享,可在线阅读,更多相关《零点起飞学Java之网络编程实例局域网通信软件(20页珍藏版)》请在金锄头文库上搜索。

1、第17章 网络编程实例局域网通 信软件 Java语言具有非常强大的网络应用开发能力。本章通 过实现一个简单的局域网通信软件,展示了Java语言 网络编程知识在实际系统开发过程中的具体应用。 本章实例主要涉及Java网络编程知识和Java图形界面 编程知识。 17.1 实 例 概 述本章的实例将开发一款用于局域网内通信的软件。该通信软件采用“客户端 服务器”模式。服务器负责提供通信服务,如建立连接、处理请求数据等,并 能与客户机对等地交互发送消息。客户机可以向服务器发送连接请求。连接建 立后可以与服务器互发消息进行通信。该软件的工作流程大致如图所示。17.2 系 统 设 计 对系统需求进行了充分

2、的分析之后,在具体开发之 前需要进行一下总体设计。系统设计包括系统总体 结构、构建开发环境、确定系统工程目录这几个方 面,下面分别对其进行介绍。17.2.1 系统总体结构 在对整个系统进行需求分析后,将系统功能划分为 服务器端程序和客户端程序两大块。系统的功能结 构图如图所示。 其中,服务器端程序主要用于监听客户端的连接请 求,连接建立后能够与客户端进行通信。客户端程 序负责向服务器发出连接请求,连接建立后能够与 服务器端进行通信。另外,两端的程序在一方断开 后都能自动向对方发送信息提示。17.2.2 构建开发环境 本系统是Java网络编程方面应用的实例。对于通信过 程中的数据没有进行持久性保

3、存,所以不需采用数 据库系统。根据系统的实际情况,可采用如下的开 发环境。 操作系统:Windows7; 编程语言:JDK 1.7; 开发工具:Eclipse 4.0。17.2.3 系统工程目录 在开发一个实际应用系统的时候,应该规划好系统工程的文件结构。 有规划的工程文件结构便于在开发过程中进行管理,也使得开发工作 的内容更加清晰。在Eclipse开发环境下,本系统最终的工程目录结构 如图所示。 系统的工程名称为jywtx,所包含的文件夹及功能包主要包括以下几个 方面。 src目录:用于存放系统的所有源代码。源代码按照包结构进行组织。 business包:存放业务实现类。 util包:存放系

4、统的实用工具类,为其他包共用。 window包:存放系统的图形界面窗口类。17.3 公 共 模 块 在系统开发过程中,经常需要设计一些公共模块,供系 统中其他模块共同调用。本系统的公共模块主要由util包 来实现。util包主要用于存放一些实用工具类,系统所有 模块中经常需要使用的一些工具类或系统常量等可以在 该包中定义。 本系统的util包只定义了一个Constant类,用于定义系统 常量。 Constant类共定义了3个常量。其中,SERVER_HOST常 量表示服务器主机的IP地址,主要供客户端请求连接使 用。LISTEN_PORT常量表示服务器主机监听的端口号。 CONNECT_QUI

5、T常量为退出标识,用于服务器和客户端 断开连接时向对方发送退出的标志。17.4 服务器端程序 服务器端程序主要用于监听客户端的连接请求。当 客户端请求连接后能够处理请求信息,连接建立后 能够与客户端进行通信等。17.4.1 工作流程 服务器端程序的工作流程图如图所示。17.4.1 工作流程 下面对上述流程图做下简要说明。 (1)服务器端以指定端口号为参数,创建一个 ServerSocket对象,监听该端口。 (2)服务器端程序使用ServerSocket对象的accept()方法 ,接收来自客户机程序的连接请求。此时服务器端将一 直保持阻塞状态,直到收到客户端发来的连接请求。 (3)accep

6、t()方法接收到客户端请求后返回Socket对象, 连接成功建立。 (4)使用Socket对象创建输入、输出流对象。使用流对 象的方法完成和客户端的数据传输。其中,包括处理接 收到的客户端信息及向客户端发送信息两种操作。 (5)客户端工作完毕后,关闭和客户端通信的流和通信 的Socket,并进入下一次循环。17.4.2 源程序 服务器端程序主要由business包的Server.java和 window包的ServerFrame.java两个文件组成。17.4.3 程序解释 下面对上述源程序中的关键实现部分给予重点说明。 (1)程序入口为Server类的main()方法。main()方法创建

7、了Server类的实体。服务器端界面的生成和监听服务的启 动都是在Server类的构造方法中完成的。 (2)Server类的构造方法中首先创建了图形界面 ServerFrame类的实体,并将其设置为可见。 服务器端图形界面的主要实现类为window.ServerFrame。 其中,ServerFrame类提供了一个public方法display()。服 务器端业务程序Server类可以调用该方法在图形界面上半 部的文本区域内显示相关文字信息。 (3)显示完图形界面后,Server类的构造方法调用 startServer()方法启动服务。startServer()方法实现了端口 监听、建立连接、

8、通信等服务器端程序的主要核心业 务。所以它也是服务器端程序的实现重点。17.4.3 程序解释 (4)startServer()方法首先创建了ServerSocket类的实例,开始监 听指定端口。该方法被设计成每次只接收一个客户端的连接请 求。直到与当前客户端通信完成断开连接后,才开始接收下一个 客户端的请求。在程序实现上,对一个客户端的通信过程都是在 while循环中完成的。一次迭代服务一个客户端。监听端口的同时 在图形界面上显示“等待连接”的提示信息。此时,服务器端 程序处于阻塞状态,直到接收到客户端的连接请求。 (5)待接收到客户端的连接请求后,程序在图形界面上显示相关 的连接信息。此时,

9、服务器端与客户端的连接已经建立,双方可 以互发消息进行通信。服务器端发送消息的操作方法为,在图形界 面左下角的文本域内输入相应文本,然后单击“发送”按钮。当前 客户端图形界面上即会显示服务器端发来的消息内容。 (6)上述循环退出的条件为收到的标识为退出连接的消息。触发 退出连接行为的动作可能为客户端输入退出标识信息、客户端直 接关闭了操作界面等。这些动作都会为服务器端程序自动发送退 出连接的消息。服务器端程序接收到退出连接的消息后,退出无 限循环。结束当前客户端的连接,并在图形界面上显示相关信 息。结束当前连接后,程序关闭相应的输入、输出流,进入下一 次循环迭代,等待下一个客户端连接。17.5

10、 客户端程序 比较服务器端来说,客户端程序相对简单。客户端 程序主要用于向服务器端发出连接请求,连接建立 后能够与服务器端进行通信。17.5.1 工作流程 客户端程序的工作流程图如图所示。17.5.1 工作流程 下面对上述流程图做下简要说明。 (1)客户端以指定主机、指定端口号为参数,创建 一个Socket对象。 (2)向服务器端发出连接请求。连接成功建立后返 回Socket对象。 (3)使用Socket对象创建输入、输出流对象。使用 流对象的方法完成向服务器端发送和接收数据。 (4)通信完毕后,关闭和服务器端通信的流和 Socket。17.5.2 源程序 客户端程序主要由business包的

11、Client.java和window 包的ClientFrame.java两个文件组成。17.5.3 程序解释 下面对上述源程序中的关键实现部分给予重点说明。 (1)程序入口为Client类的main()方法。main()方法创建 了Client类的实体。客户端界面的生成和通信程序的启动 都是在Client类的构造方法中完成。 (2)Client类的构造方法中首先创建了图形界面 ClientFrame类的实体,并将其设置为可见。客户端图形 界面的主要实现类为window.ClientFrame。其中, ClientFrame类提供了一个public方法display()。客户端业 务程序Cli

12、ent类可以调用该方法在图形界面的上半部的文 本区域内显示相关文字信息。 (3)显示完图形界面后,Client类的构造方法调用 startClient()方法启动通信程序。startClient()方法实现了请 求连接、与服务器端通信的主要核心业务,所以它也是 客户端程序的实现重点。17.5.3 程序解释 (4)startClient()方法首先创建了Socket类的实例,用于请求指 定服务器及指定端口的连接。在图形界面上会显示连接建立情 况的信息。 (5)与服务器端成功建立连接后,即可以向服务器发送消息 进行通信。发送消息的操作方法为在图形界面左下角的文本域 内输入相应文本。然后单击“发送”

13、按钮,服务器端图形界面上 即会显示客户端发来的消息内容。 (6)上述循环退出的条件为收到标识为退出连接的消息。触 发退出连接行为的动作可能为服务器端输入退出标识信息、服 务器端直接关闭了连接等。这些动作都会为客户端程序自动发 送退出连接的消息。 客户端程序接收到退出连接的消息后,退出无限循环,结束当 前客户端的连接,并在图形界面上显示相关信息。结束当前连 接后,程序关闭相应的输入、输出流,完成本次与服务器端的 通信。17.6 小 结 本章实例是针对第14章Java网络编程知识给出的 一个较完整的综合实例。该实例实现了一个简单的 局域网通信软件,所涉及的知识点包括Java网络编程 相关知识及Java图形界面。其中,读者要重点掌握的 是Java网络编程知识的具体应用。灵活使用Java语言 的网络编程知识,开发出更加复杂、强大的应用系 统。第18章将介绍Java语言Web编程实例。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号