二、实训任务和要求
2.1实训任务
本次实训所开发的是基于c\s架构的,多线程访问的完整小程序。其中,包括客户端,和服务器两部分的开发。客户端要完成用户的
注册,登录,以及进入主程序界面后的对联系人电话的查找等功能。当客户端需要和服务器进行交互时,通过将一个数据集对象封装到Socket包中,再发送到服务器,同时等待服务器返回所需要的数据集对象。服务器端使用多线程技术实现对多用户请求进行分别处理。使服务器开始工作后,将监听指定端口,等待客户端用户的请求。当需要和各个用户交互时,也是用到Socket包,具体操作同客户端。
2.2实训要求
此次实训旨在完成一个通讯录系统,要求实现对通讯人员的管理、
查询等功能。用Java实现用户界面和业务逻辑,用My
sql数据库实现数据存储。
<1>.理解c\s下的
软件设计结构,掌握网络编程的基本感念。<2>.了解java的多线程机制,掌握java多线程技术的应用。<3>.熟练掌握TCP协议的Socket编程。<4>.按照实训的时间安排进行,实训结束后提交有关的表格与
文档。
1
三、实训过程与内容
3.1通讯录系统需求分析
对于有些企业,一个部门可能需要共享客户的联系方式等信息。在过去,人们
常用名片簿或互相询问的方式来实现客户信息的获得。对于客户总数不是很多的情况下,这样的方法是可取的,但是如果客户信息有成千上万的话,则容易出错。所以我们希望设计一个通讯录,记录重要的联系方式,为大量的信息共享带来方便。系统的需求分析如下:
客户端的功能用户登录用户注册查看用户联系方式客户端用例图如图1所示:
图1客户端用例图
服务器端监听/处理客户请求
2
与数据库连接,访问数据库基本信息管理(后台处理客户端请求)服务器端用例图如图2所示:
图2服务器端用例图
3.2通讯录系统设计
3.2.1通讯录系统功能模块设计
系统功能模块框图,如图3所示:
图3系统功能模块框图
物理结构图,如图4所示:
3
图4物理结构图
3.2.2通讯录数据库设计
针对通讯录系统的需求,通过对管理工作过程的内容和数据流程分析,设计出如下的数据表:1.用户表(user_):id,nicheng,code。2.基本信息表(info_):id,nicheng,name,tel。
3.3系统设计过程中遇到的关键问题
3.3.1构建基于TCP的Socket程序
所谓Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。3.3.2服务器程序中的多线程问题