基于java的网络即时通讯系统的设计与实现(最新整理by阿拉蕾内容摘要:
的系统用例图 用户( user)通过登录界面与服务器( Server)进行通信,不仅能够注册新账号,还能通过 Server与在线好友进行聊天,包括文本消息传递和音频信号传输,还能管理自己的好友列表,如删除好友等。 如图 31系统的总体功能用例 图所示: 图 31 系统的总体功能用例图 注册登录:用户可以通过注册界面填写必要的信息来是申请到一个账户,并可直接跳转到登录界面,输入密码即可登录。 好友聊天:用户可以从在线好友列表中选择好友进行消息传递,也可以跟陌生人进行聊天。 用户管理:用户可以进行添加好友、删除好友等操作。 语音聊天:用户可以选择在线用户进行语音聊天。 本系统主要通过客户端,服务器端来体现聊天系统的基本功能。 ( 1)服务器端: 出 ( 2)客户端: 6 user 注册活动图 启动 Server后, Server 开启一个 Socket连接的监听线程,用来监听来自网络的连接。 当 User 使用 Client进行注册账号, user 要把个人资料填写完并发送给 Server。 Server 来验证 user填写的个人资料是否合法,如果合法, Server将用后台 数据库表 ICQ自动序列生成 ICQ号返回给 user。 如果不合法,Server拒绝申请,并将填写资料错误的信息返回给 user。 如图 32 user注册活动图 : 图 32 user 注册活动图 user 登录活动图 启动 Sever后, Server开启一个 Socket连接的监听线程,用来监听来自网络的任何连接。 当 Client申请登录, user使用账号和密码进行登录, Server将 user发过来的 user信息和 Server后台数据库里的 user信息进行比对。 如果 user的账号和密码与之完全匹配,则 user成功登录,并且 Server返回给user登录账号的好友列表、好友资料、好友状态;如果不匹配, Server则告知 Client的 user登录失败。 如图 33 user登录活动图: 7 图 33 user 登录活动图 user 好友添加时序图 userA 打开好友添加面板并填写添加请求。 请求先是由 userA 发送给 Server,再由 Server 转发给userB,如果 userB接收到请求成功, userB的 Client则自动打开一个好友请求界面告诉 userB有陌生人添加请求。 UserB接收请求并回复,将由 Server将该回复转发 userA。 如图 34 user好友添加时序图: 图 34 user 好友添加时序图 user 聊天时序图 userA使用 Client登录,登录成功后选择 userB,打开聊天面板并填写聊天内容。 消息先是由 userA 8 发送给 Server,然后由 Server转发给 userB,如果 userB接收消息成功, Server将发送成功的消息返回给 UserA;如果 userB接收消息失败, Server将发送失败的消息返回给 userA。 user聊天时序图,如图 35: 图 35 user 聊天时序图 user 语音聊天时序图 userA打开语音聊天界面,选择好友 userB,向他发送语音请求。 该请求先是由 userA发送给 server,然后由 server转发给 userB。 userB通过语音聊天界面可以接收到请求并做相应的处理,如拒绝或者接受。 userB 将处理请求发送给 Server,再由 server 根据 userB 的处理请求做出相应处理。 如果 userB同意语音请求,则 userA和 userB将通过建立 UDP连接来实现发送和接收语音消息。 UMLuser语音聊天时序图,如图 36 : 图 36 user 语音聊天时序图 9 4 系统数据库设计 用户和客户端的关系 本系统采用 SQL2020数据库管理系统,用于实现系统信息的管理。 根据系统需求,列出以下数据项和数据结构: Client:注册、登录、查看资料、离线消息传递等。 User:昵称、性别、号码、年龄、地址、等。 Client和 User之间是使用的关系。 user登录成功之后则可查询在线 user的基本信息。 可画出数据库 ER图,如图 41所示: 图 41 系统数据库 ER 图 用户和登录记录的关系 列出 user与聊天记录、 user与登录记录的数据结构。 登录记录:登录次数、上线时间、下线时间、登录的 IP。 User与登录记录之间是通过号码联系。 所以, user与登录记录的 ER图如图 42所示。 图 42 user 与登录记录 ER图 用户 昵称 号码 性别 时间 地址 上线时间 IP 登陆 IP 年龄 登录次数 下线时间 登录记录 使用 M N 用户 昵称 号码 性别 时间 地址 消息传递 IP 登陆 年龄 离线 查看用户资料 客户机 使用 M N 10 用户和聊天记录的关系 聊天记录:接收消息内容、发送消息内容、发送消息时间、接收消息时间。 User与聊天记录之间是通过登录联系,登录的属性包括 IP、号码等。 所以, user与聊天记录的ER图如图 43 所示: 图 43 user 与聊天记录 ER 图 数据库中表格的设计 本系统需要用 SQL server 2020 实现数据表, user个人信息表分别设 id 、 nickname 、 age、 sex、password、 address等字段,其中 id 和 age为数字数据类型, nickname、 age、 sex、 password、 address为文本数据类型。 选择使用设计器创建表新建数据库,如图 44数据库窗口 所 示: 图 44 数据库窗口 因此,对 user个人信息表进行创建、保存, user个人信息表如表 45 所示: 用户 昵称 号码 性别 时间 地址 发送消息 IP 接收消息 年龄 接收时间 发送时间 聊天记录 使用 M N 11 表 45 user 个人信息表 列名 数据类型 长度 允许空 id int 4 No nickname text 16 Yes sex text 16 Yes age int 4 Yes address text 16 Yes password text 16 Yes 对表 32定义的字段进行详细的信息填充,在 user登录成功并获得 user列表后 便可通过点击 user资料看到在线 user的 nickname、 age、 sex、 id、 address等详细的 基本信息。 user登录记录表分别设 onliime、 loginIP、 logindegree、 outliime字段,其中 outliime、ouliime 字段为日期的数据类, loginlP 字段为文本的数据类型, logindegree字段为整数的数据类型。 user登录记录发如表 46 所示: 表 46 user 登录记录表 聊天记录表分别设 recvmsg、 sendmsg、 recvtime、 sendtime字段,其中 sendtime、 recvtime字段为日期型的数据类型, sendmsg、 recvmsg字段为文本的数据类型。 user聊天记录表如表 47所示: 表 47 user 聊天记录表 列名 数据类型 长度 允许空 sendmsg text 16 Yes recvm。基于java的网络即时通讯系统的设计与实现(最新整理by阿拉蕾
相关推荐
农业技术全集之植,花枯萎病是一种为害严重的侵染性病害,从苗期到花蕾期都可得病,对棉花的产量威胁很大,为促进得病的棉苗早日恢复,从 2003 年开始我们用劈茎法治疗棉花枯萎病取得了较好的效果,治愈率达 99%左右。 而且其方法简单快速,每小时能劈茎 400 株左右。 现将具体操作方法介绍如下:当发现棉花枯萎病苗处于发病初期时,用一把锋利的小刀,用左手的大拇指和食指稳住病苗的茎秆
架 Struts 框架可分为以下四个主要部分,其中三个就和 MVC 模式紧密相关: 1模型 (Model),本质上来说在 Struts 中 Model 是一个 Action 类,开发者通过其实现商业逻辑,同时用户请求通过控制器 (Controller)向 Action 的转发过程是基于由 文件描述的配置信息的。 2视图 (View), View 是由与控制器 Servlet 配合工作的一整套
owable类的 printStacktrace方法来获得堆栈结构的文本描叙。 现在,可以通过调用 getStackTrace方法来获得一个 StackTraceElement对象的数组,通过研究该数组,就可以分析程序运行情况。 例如: Throwable t = new Throwable ( )。 StackTraceElement[ ] frames = ( )。 For ( int i=
1、着水稻虫害发生程度的不断加重,一些毒性强、残留量大的农药在水稻上的用量也逐渐加大,这给稻米安全带来了隐患。 针对这种状况,从 2004年开始,笔者有目的的在示范区内开展农业防治研究,通过两年的实践,结果表明:农业措施防治应用于水稻害虫防治,比化学药剂防治、生物防治和物理机械防治更具有独特而优异的效果,对提高水稻害虫的防治效果,保证水稻的高产稳产起到了积极作用。 现将几种农业措施阐述如下。
间提供一个成功的企业级映射解决方案,尽最大可能弥补对象范例和关系范例之间的差异 [7]。 传统上, Hibernate 的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载 [8]。 创建这些映射有很多方法,可以从已有数据库模式或 Java 类模型中自动创建,也可以手工创建。 无论如何,您最终将获得大量的 Hibernate 映射文件。 此外