基于JAVA的博网即时通讯软件的设计与实现(附:源码 论文 Sql文件)

摘要

即时通讯软件即所谓的聊天工具,其主要用途是用于文字信息的传递与文件传输。使用eclipse作为即时通讯软件的开发工具,使用Socket建立通讯渠道,多线程实现多台计算机同时进行信息的传递,swing技术等进行实际开发相对比较合适。通过一些轻松的注册登录后,在局域网中即时聊天便可以成功进行。

关键字:即时通讯软件,局域网聊天,Java,Socket

开发背景

随着信息社会的快速发展,网络作为改变世界的最重要的因素。众多的企业纷纷使用局域网聊天来满足工作与交流高效、快速执行的需求。企业中使用内部局域网可以使内部信息交互的过程得以简化,从而达到提高工作效率的目的[1]。所以经上所述,公司内部使用即时通讯的方式在各台计算机之间进行交流已经是时代发展的趋势。

即时通讯软件即所谓的聊天工具,作为进行文字传输、文件传输的工具被使用在互联网的客户端上。从专业角度来介绍,即时通讯软件一般分为依赖于服务器的与依赖于P2P的[2]。

从现状来看,互联网上深受用户喜爱的即时通讯软件主要有以下几个:微信、QQ、YY、飞秋等等[5]。

开发意义

如今的社会是信息社会,正是因为用户大量的需求促进了即时通讯的开发,信息快速的传递越来越受到重视同时使得互联网技术越来越成熟,在其中即时通讯软件承担了相当一部分的作用,在这些软件中,一些优秀且易用的聊天工具被各位用户所喜爱[3]。在中国,腾讯QQ无疑取得了极大的成功,简单易用,功能齐全,在满足用户基本需求的同时为各位用户提供其它使人称心的功能。即时通讯软件之所以能够取得成功,正是因为其适应了时代,符合了信息时代用户的需求,它不仅可以提供全面,大量信息给用户,同时也可以使用户的生活更加的精彩,成功满足了自身商业利益的获取也构建了人们和谐便利的生活。

Socket是即时通讯系统实现的核心技术,可以通过端口设置与IP地址来构建通讯的桥梁,以便各类信息的发送与接收。在这个软件中可以与陌生用户或者你已加入用户列表中的用户进行信息的传递来完成基本的交流,系统在后续中是会继续进行功能的完善与拓展,来实现文件传输,语音传输等各种方式来加强用户的体验,为用户带来极大的便利。

系统流程图

服务器端原理图如图

系统功能结构

该即时通讯系统是有两部分组成,服务器端可以通过启动来监听客户端信息的传递与执行各种对客户端的监控,客户端则是通过人性化与美观的界面来使用户可以易上手和舒适的体验快速与简便的通讯[9]。

应用从这两部分分别进行了详细的功能设计,服务器端功能主要为启动对于客户端的监听与关闭监听,还有对于已注册用户的实时监控与管理,客户端功能主要为使用者该软件账号的申请与进入操作界面,还有自己资料的修改以及对于其他账号好友的添加与管理等等。

软件功能层次图如图

数据库设计

数据库是该即时通讯系统的中枢结构,进行信息处理的各个部分都是在数据库的基础上的,从而能够达成对于各类数据安全完整的存储,并进行合理的运用[10]。有必要时可以设置数据字典,数据字典对于开发非常的有效,它的存在避免了程序员之前互相作繁杂的沟通,大家按照统一的标准来进行,即保证了效率也提高了整体的可维护性,下面是必须要注意的一些关键点:

(1)性能:数据库必须具有足够能力进行数据管控;

(2)兼容性:数据库是否支持开发所需的其他环境;

(3)封闭性:数据库对于数据的存储与处理是否足够保密;

(4)可靠性:数据库能不能承担对于数据的管理与传递;

(5)并行性:数据库是否可以并行运行在多节点上;

(6)可操作性:数据库是否在使用前需要大量时间学习。

根据该即时通讯系统开发时的各类现状需求,我们最终选择了MySQL作为信息处理的载体。

概念结构设计

我们将系统中用到的各类数据抽象成各种数据体系,这些数据类型所组建成的体系正是概念结构的构建过程,进而组建全局的概念结构。

用户信息实体属性图

好友实体属性图

账号实体属性图

逻辑结构设计

逻辑结构设计则是把上一步设计好的E-R图结构转换为系统中相应的各类数据对应的逻辑结构。而E-R图向关系结构的过度,正是将各类实体与实体的对应关系进一步具体化,这是必要的,也是一个难点所在。

实体之间的关系是需要分为下述几种角度分析的:

如果博网即时通讯系统中实体间联系是1:1,则关系模式是自由的,可以与其他任何的关系模式结合。

如果博网即时通讯系统中实体间联系是1:n,则应将单独那一端的关系码列入其他端构建的各类结构中。

要是博网即时通讯系统中实体间联系是n:m,则应将各端与各端的实体对应关系表清,实体的码与联系的属性正是关系的属性。

基于上述原则,进而完成模型的转换。

物理结构设计

下述其遵守规则:

(1)避免各类数据的交叉而导致内存的浪费,最好建立数据字典。

(2)开发与设定相匹配,避免导致混乱。

(3)数据之间的关系必须是合理的,是可以在后续功能的拓展后不会产生影响的。

基于以上的考量,对本软件的信息结构如下:

 基本信息表

 好友表

 账号表

系统实现界面

控制端操作页面

图9是控制端操作页面,通过运行相应的文件,即可打开该服务器端界面,在这个界面可以对已经注册过的用户进行管理与监控,也可以对服务器进行的基本管控,在对话框中查看一些基本日志。

 图10是打开运行后的服务器页面,能够看到可以对用户进行管理,并在对话框中会产生一些辅助日志。

2  用户端操作页面

用户申请账号如图11所示,是用户端进行账号申请的页面,用户需要在该界面进行相关信息的完善,然后即可注册成功。

图12是申请成功界面,申请成功后可以获得登录号码。

图12  用户申请成功界面

用户登录如图13所示,可以看到在该对话框中输入一些必要的信息即可完成登录,进入下一个界面。

图14是登陆后的用户界面,能看到没有任何好友,所以需要自己进行添加。

添加好友如图15所示,这是用户将陌生人加入列表中进行交互,搜索相应用户账号,则可以搜索到该账号的持有者,然后加入列表。

 图16是用户进行已搜索到账号并进行添加的界面,当对应用户信息显示出来时,可以先查看该用户信息再选择是否添加该账户。

用户与其他用户进行交互方式如图17所示,是各位用户正在进行交互选择的页面,分为:信息传递,好友操作等等功能。

图18是用户根据对话框进入相应界面,然后进行下一步操作选择的用户基本操作页面。

更换头像如图19所示这是用户变更头像的界面。

图20是用户管理个人基本信息的界面。

  即时聊天如图21是用户正在与其他用户进行信息的交互。

图22是用户之间的聊天界面,可以看到正在进行相互交流

信息传递页面如图23所示,是各位用户进行信息传递的基本页面。

图24是用户的基本信息、控制端与各个用户均可以对其他用户进行基本信息的阅览。

移除该用户如图25所示,是用户将以添加账户进行移除的页面,用户有权限进行该操作。


开源项目和资料分享:免费领取系统配套的源码 课件等资料:只需要:点赞+关注

点击免费领取

如果有小白想要入门Java,Python的,但是又不知道学什么 怎么学?可以    私信     我,无私分享Java和Python的网Pan资料~~~

互相分享 与君共勉~~~

大家有什么资源也可以互相分享 ,有什么问题也可以互相讨论~~~

啧~~~你一个 我一个 那我们不得学得风声水起~~~(狗头)

猜你喜欢

转载自blog.csdn.net/lxianshengde/article/details/125146757