1、 1 软件工程设计 报告 一 . 项目名称: 基于 JAVA 实现的聊天室 二 . 项目功能: 1. 新用户的注册 2. 用户登录和退出 3. 聊天服务 4. 在线用户列表 5. 文件传输服务 三 . 项目整体设计框图说明: 建立客户机套接字 提出请求,与服务器建立连接 发送并接受消息队列信息,并做处理 关闭套接字,保存相关信息 建立服务器套接字 接受请求,建立对等客户机套接字 接受消息队列信息,并做处理 关闭套接字,保存相关信息 服务器 客户机 2 四 . 项目分模块设计说明和流程图: 1. 此个项目主要分 3 个模块:服务器,客户端,文件传输系统 2. 模块主要工能是:客服端 发送和接受信
2、息, 服务器转发信息,文件传输系统主要是处理文件传送和接受的工作(文件传输是发起端建立文件传输服务器,并把相关信息通过服务器转发给接收方,让接受方与文件传输服务器建立连接,完成文件传输过程)。 3. 此个项目采用 JAVA 完成,主要的类文件如下: Chatsever:聊天室的服务器 Chatroom:聊天室的客户 端 File_send:文件传输界面,是文件传送和接受的前导 Server:文件传送 Client:文件接受 Java_list:处理用户列表界面问题 MyCellRenderer:处理用户头像问题 4. 程序处理流程图: 都是组成关系 3 启动服务器 读取用户帐号和密码信息信息表
3、 建立 服务器 套接字ServerSocket(2950) 侦听客户端 连接 请求 Accept() 建立线程 n 和套接字 s 实现连接 接受客户端信息 m 主线程 m 为注册信息, 对比信息表给客户端回应 判断 m 是注册信息还是登录信息 m 为登录信息,对比信息表,并给予客户端回应 登录成功 登录失败 继续接收信息,判断信息类型 信息是文件传输请求,转发请求 信息 是普通聊天消息, 判断转发对象, 并且转发消息到指定队列 消息是用户注销退出消息 关闭套接字 s,终止线程 n 服务器启动过程 4 关闭各种客服端套接字 ,终止连接 关闭服务器套接字 释放各种资源 保存读取用户帐号和密码信息信
4、息表 服务器终止过程 5 启动客服端,与服务器建立连接 发送注册信息 发送登录信息 登录注册界面 接收服务器信息 接收服务器信息 注册成功 注册失败 登录成功 登录失败 聊天界面 提示用户 建立接受信息线程 主线程 接收信息 根据消息决定处理方式 接收用户处理信息 要发送普通聊天消息 要 提出文件传送请求 发送信息 文件传输主界面 传输文件过程 结束 客户端启动运行过程 6 关闭客服端套接字,终止连接 释放各种资源 结束 客户端终止过程 发送用户注销退出消息 7 文件传输主界面 文件传送界面 文件接收界面 选择传送文件 选择 存放 文件位置和文件名 发送消息:包括文件类型,名字和大小 接收并提
5、取消息:包括文件类型,名字和大小 连续读取文件到字节流 发送字节流 发送完毕流 没有 结束 连续接收字节流 将字节流写进文件 接收 完毕流 没有结束 关闭文件流和套接字 建立套接字 建立连接 释放各种资源 结束 文件传输系统 8 5. 程序运行示范截图 以及使用说明 : ( 1) .服务器配置文件 server.ini,主要记录已注册用户的帐号和密码信息 ,每 2 行是一组帐号和密码 : ( 2) .服务器启动窗口,等待客服机的连接: ( 3) .服务器启动窗口,已有客服机的连接: 9 ( 4) .客户机配置文件 chat.ini,其中第一项是服务器的地址,第二项是用户上次记录的帐号,第三项是密码: ( 5) .客服机启动,登录界面: ( 6)。客服机启动,注册界面: 10 ( 7) .登录失败提示界面: ( 8) .注册失败提示界面: ( 9) .注册成功提示界面: