3.2系统业务流程
首先由服务器开启服务,监听局域网中客户端的连接请求,客户端连接后,登录或者处理注册信息,并返回操作结果。客户端注册或者登录成功后,显示聊天窗体,此时各客户端将自主的监听局域网中的用户,实时更新自己的用户列表并显示,各个客户端之间的信息交流不再通过服务器转发,而是自主通信。
局域网聊天系统的业务流程图如图所示:
客户端 服务器 登录窗口 注册判断 发送消息 Y 登录 记录所有注册用户和显示当前在线人数 客户端 Y 登录验证 发送消息 发送 消息 聊天窗口 聊天窗口
TCP/UDP协议 图3.1业务流程图
3.3系统实现原理
聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。
客户与服务器之间用TCP协议连接,客户与客户之间通过服务器转发消息.
其中用到了Socket,它是介于应用程序与硬件之间,并可以提供标准的函数以符合不同的网络硬件规格。
图3.2 系统实现原理图
3.4模块化设计
软件模块化设计方法是从计算机实现的角度出发对整个软件进行审核和校验,将
整个系统划分为不同的功能模块,实现软件的一个特定功能。各个功能模块之间具有相对独立性,便于整个软件的设计、实施、维护和扩充。这种模块化结构设计方法,为整个软件顺利进行奠定了基础。
3.5 数据库设计
系统需求主要体现在用户的注册、登录、发送消息、接收消息、聊天记录的保存等方面,而本系统发送消息,接收消息,聊天记录保存均有客户端自主完成,因此不需要体现在数据库中,这样数据库只需存储用户的信息即可。
数据库采用sql server,,里面建立了2个表,存储用户包含登录账号和密码的用户信息yonghu 表,用户发送消息记录的信息表log表。
表3.1 用户的基本信息表 列名 custname 用户名 vchar cusPasswoage rd 密码 vchar 年龄 vchar sex 性别 vchar email 电子邮箱 vchar head 头像 vchar log表字段:登录用户(id),消息记录,时间
3.6开发环境与运行环境
开发环境: 应用服务器 数据库服务器
系统:内存2G,硬盘320G
运行环境:本系统是用Myeclipse工具开发的,所以首先要安装Myeclipse工具。这次的设计是在windows系统下,要先安装java的jdk 来支持Myeclipse的运行。本系统的安装环境为:Windows XP+JDK1.7 +Myeclipse 8.5.
3.7客户端结构
客户端用来向服务器端发起一个连接,等待服务器的允许接入确认。若服务器端同意连接请求,接收到服务器的同意连接信号后,开启接收信息线程,并置消息发送事件为Enable,通信双方就可以进行文本聊天了。若服务器端拒绝连接,则释放Socket连接并关闭网络流。若已建立连接,当断开连接时,将向对方发送断开信号,然后将释放Socket和网络流,不影响到下一次连接的发起。
用户注册窗体 窗体监听程序
Register WindowsClose ChatClient 启动客户端
Login ChatRoom 用户聊天窗体
用户登录窗体
图3.3客户端结构图
ChatClient.java 为客户端程序启动类,负责客户端的启动和退出。 Login.java 为客户端程序登录界面,负责用户帐号信息的验证与反馈。
Register.java 为客户端程序注册界面,负责用户帐号信息的注册验证与反馈。 ChatRoom.java 为客户端程序聊天室主界面,负责接收、发送聊天内容等。
Windowclose 为ChatRoom.java的内部类,负责监听聊天室界面的操作,当用户退出时返回给服务器信息。
3.8服务器端结构
服务器监听控制窗体 ServerFrame 处理用户请求 AppServer 启动服务器监听 Connection WordFilter 聊天内容过滤器
图3.4 服务器端结构图
ServeFrame.java 为服务器端程序界面,负责为服务器的启动提供界面服务。 AppServer.java 为服务器端启动界面,负责监听服务器的状态、在线人数、最多在线人数、服务器名称、访问协议、服务器IP、服务器端口以及用户信息的管理、日志的保存。
Connection.java 是连接服务器和客户端的桥梁,主要负责将客户端的信息传送给服务器,并将服务器端的信息反馈给客户端,即所谓的“三次握手”,也是Socket编程的重要部分。
WordFilter.java 负责将聊天过程中不合法的文字语句等过滤掉,返回合法内容。
4 系统实现
4.1新用户注册模块
4.1.1注册流程
当服务器收到用户注册请求后,开始接收该客户传递的消息,如用户的昵称、密码、性别、头像、个人资料等信息。接收完毕后,服务器通过jdbc 与后台数据库连接,向数据库添加记录。
注册事件处理是客户端注册的主要部分。Java事件包括键盘事件,鼠标事件和按钮事件,而所用到的是鼠标事件就是点击鼠标时,系统会调用监听器。
注册流程图:
相关推荐: