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

上传人:wu****ei 文档编号:249358568 上传时间:2024-10-28 格式:PPTX 页数:20 大小:285.69KB
返回 下载 相关 举报
零点起飞学Java之网络编程实例局域网通信软_第1页
第1页 / 共20页
零点起飞学Java之网络编程实例局域网通信软_第2页
第2页 / 共20页
零点起飞学Java之网络编程实例局域网通信软_第3页
第3页 / 共20页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,2012/12/25,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,17,章 网络编程实例,局域网通信软件,Java,语言具有非常强大的网络应用开发能力。本章通过实现一个简单的局域网通信软件,展示了,Java,语言网络编程知识在实际系统开发过程中的具体应用。本章实例主要涉及,Java,网络编程知识和,Java,图形界面编程知识。,17.1,实 例 概 述,本章的实例将开发一款用于局域网内通信的软件。该通信软件采用“客户端服务器”模式。服务器负责提供通信服务,如建立连接、处理请求数据等,并能与客户机对等地交互发送消息。客户机可以向服务器发送连接请求。连接建立后可以与服务器互发消息进行通信。该软件的工作流程大致如图所示。,17.2,系 统 设 计,对系统需求进行了充分的分析之后,在具体开发之前需要进行一下总体设计。系统设计包括系统总体结构、构建开发环境、确定系统工程目录这几个方面,下面分别对其进行介绍。,17.2.1,系统总体结构,在对整个系统进行需求分析后,将系统功能划分为服务器端程序和客户端程序两大块。系统的功能结构图如图所示。,其中,服务器端程序主要用于监听客户端的连接请求,连接建立后能够与客户端进行通信。客户端程序负责向服务器发出连接请求,连接建立后能够与服务器端进行通信。另外,两端的程序在一方断开后都能自动向对方发送信息提示。,17.2.2,构建开发环境,本系统是,Java,网络编程方面应用的实例。对于通信过程中的数据没有进行持久性保存,所以不需采用数据库系统。根据系统的实际情况,可采用如下的开发环境。,操作系统:,Windows7,;,编程语言:,JDK,1.7,;,开发工具:,Eclipse,4.0,。,17.2.3,系统工程目录,在开发一个实际应用系统的时候,应该规划好系统工程的文件结构。有规划的工程文件结构便于在开发过程中进行管理,也使得开发工作的内容更加清晰。在,Eclipse,开发环境下,本系统最终的工程目录结构如图所示。,系统的工程名称为,jywtx,,所包含的文件夹及功能包主要包括以下几个方面。,src,目录:用于存放系统的所有源代码。源代码按照包结构进行组织。,business,包:存放业务实现类。,util,包:存放系统的实用工具类,为其他包共用。,window,包:存放系统的图形界面窗口类。,17.3,公 共 模 块,在系统开发过程中,经常需要设计一些公共模块,供系统中其他模块共同调用。本系统的公共模块主要由,util,包来实现。,util,包主要用于存放一些实用工具类,系统所有模块中经常需要使用的一些工具类或系统常量等可以在该包中定义。,本系统的,util,包只定义了一个,Constant,类,用于定义系统常量。,Constant,类共定义了,3,个常量。其中,,SERVER_HOST,常量表示服务器主机的,IP,地址,主要供客户端请求连接使用。,LISTEN_PORT,常量表示服务器主机监听的端口号。,CONNECT_QUIT,常量为退出标识,用于服务器和客户端断开连接时向对方发送退出的标志。,17.4,服务器端程序,服务器端程序主要用于监听客户端的连接请求。当客户端请求连接后能够处理请求信息,连接建立后能够与客户端进行通信等。,17.4.1,工作流程,服务器端程序的工作流程图如图所示。,17.4.1,工作流程,下面对上述流程图做下简要说明。,(,1,)服务器端以指定端口号为参数,创建一个,ServerSocket,对象,监听该端口。,(,2,)服务器端程序使用,ServerSocket,对象的,accept(),方法,接收来自客户机程序的连接请求。此时服务器端将一直保持阻塞状态,直到收到客户端发来的连接请求。,(,3,),accept(),方法接收到客户端请求后返回,Socket,对象,连接成功建立。,(,4,)使用,Socket,对象创建输入、输出流对象。使用流对象的方法完成和客户端的数据传输。其中,包括处理接收到的客户端信息及向客户端发送信息两种操作。,(,5,)客户端工作完毕后,关闭和客户端通信的流和通信的,Socket,,并进入下一次循环。,17.4.2,源程序,服务器端程序主要由,business,包的,Server.java,和,window,包的,ServerFrame.java,两个文件组成。,17.4.3,程序解释,下面对上述源程序中的关键实现部分给予重点说明。,(,1,)程序入口为,Server,类的,main(),方法。,main(),方法创建了,Server,类的实体。服务器端界面的生成和监听服务的启动都是在,Server,类的构造方法中完成的。,(,2,),Server,类的构造方法中首先创建了图形界面,ServerFrame,类的实体,并将其设置为可见。,服务器端图形界面的主要实现类为,window.ServerFrame,。其中,,ServerFrame,类提供了一个,public,方法,display(),。服务器端业务程序,Server,类可以调用该方法在图形界面上半部的文本区域内显示相关文字信息。,(,3,)显示完图形界面后,,Server,类的构造方法调用,startServer(),方法启动服务。,startServer(),方法实现了端口监听、建立连接、通信等服务器端程序的主要核心业务。所以它也是服务器端程序的实现重点。,17.4.3,程序解释,(,4,),startServer(),方法首先创建了,ServerSocket,类的实例,开始监听指定端口。该方法被设计成每次只接收一个客户端的连接请求。直到与当前客户端通信完成断开连接后,才开始接收下一个客户端的请求。在程序实现上,对一个客户端的通信过程都是在,while,循环中完成的。一次迭代服务一个客户端。监听端口的同时在图形界面上显示“等待连接,”,的提示信息。此时,服务器端程序处于阻塞状态,直到接收到客户端的连接请求。,(,5,)待接收到客户端的连接请求后,程序在图形界面上显示相关的连接信息。此时,服务器端与客户端的连接已经建立,双方可以互发消息进行通信。服务器端发送消息的操作方法为,在图形界面左下角的文本域内输入相应文本,然后单击“发送”按钮。当前客户端图形界面上即会显示服务器端发来的消息内容。,(,6,)上述循环退出的条件为收到的标识为退出连接的消息。触发退出连接行为的动作可能为客户端输入退出标识信息、客户端直接关闭了操作界面等。这些动作都会为服务器端程序自动发送退出连接的消息。服务器端程序接收到退出连接的消息后,退出无限循环。结束当前客户端的连接,并在图形界面上显示相关信息。结束当前连接后,程序关闭相应的输入、输出流,进入下一次循环迭代,等待下一个客户端连接。,17.5,客户端程序,比较服务器端来说,客户端程序相对简单。客户端程序主要用于向服务器端发出连接请求,连接建立后能够与服务器端进行通信。,17.5.1,工作流程,客户端程序的工作流程图如图所示。,17.5.1,工作流程,下面对上述流程图做下简要说明。,(,1,)客户端以指定主机、指定端口号为参数,创建一个,Socket,对象。,(,2,)向服务器端发出连接请求。连接成功建立后返回,Socket,对象。,(,3,)使用,Socket,对象创建输入、输出流对象。使用流对象的方法完成向服务器端发送和接收数据。,(,4,)通信完毕后,关闭和服务器端通信的流和,Socket,。,17.5.2,源程序,客户端程序主要由,business,包的,Client.java,和,window,包的,ClientFrame.java,两个文件组成。,17.5.3,程序解释,下面对上述源程序中的关键实现部分给予重点说明。,(,1,)程序入口为,Client,类的,main(),方法。,main(),方法创建了,Client,类的实体。客户端界面的生成和通信程序的启动都是在,Client,类的构造方法中完成。,(,2,),Client,类的构造方法中首先创建了图形界面,ClientFrame,类的实体,并将其设置为可见。客户端图形界面的主要实现类为,window.ClientFrame,。其中,,ClientFrame,类提供了一个,public,方法,display(),。客户端业务程序,Client,类可以调用该方法在图形界面的上半部的文本区域内显示相关文字信息。,(,3,)显示完图形界面后,,Client,类的构造方法调用,startClient(),方法启动通信程序。,startClient(),方法实现了请求连接、与服务器端通信的主要核心业务,所以它也是客户端程序的实现重点。,17.5.3,程序解释,(,4,),startClient(),方法首先创建了,Socket,类的实例,用于请求指定服务器及指定端口的连接。在图形界面上会显示连接建立情况的信息。,(,5,)与服务器端成功建立连接后,即可以向服务器发送消息进行通信。发送消息的操作方法为在图形界面左下角的文本域内输入相应文本。然后单击“发送”按钮,服务器端图形界面上即会显示客户端发来的消息内容,。,(,6,)上述循环退出的条件为收到标识为退出连接的消息。触发退出连接行为的动作可能为服务器端输入退出标识信息、服务器端直接关闭了连接等。这些动作都会为客户端程序自动发送退出连接的消息。,客户端程序接收到退出连接的消息后,退出无限循环,结束当前客户端的连接,并在图形界面上显示相关信息。结束当前连接后,程序关闭相应的输入、输出流,完成本次与服务器端的通信。,17.6,小 结,本章实例是针对第,14,章,Java,网络编程知识给出的一个较完整的综合实例。该实例实现了一个简单的局域网通信软件,所涉及的知识点包括,Java,网络编程相关知识及,Java,图形界面。其中,读者要重点掌握的是,Java,网络编程知识的具体应用。灵活使用,Java,语言的网络编程知识,开发出更加复杂、强大的应用系统。第,18,章将介绍,Java,语言,Web,编程实例。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!