基于java技术的即时聊天系统实现

基于java技术的即时聊天系统实现

ID:8317652

大小:468.00 KB

页数:19页

时间:2018-03-19

上传者:U-5649
基于java技术的即时聊天系统实现_第1页
基于java技术的即时聊天系统实现_第2页
基于java技术的即时聊天系统实现_第3页
基于java技术的即时聊天系统实现_第4页
基于java技术的即时聊天系统实现_第5页
资源描述:

《基于java技术的即时聊天系统实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

2015届本科毕业论文(设计)基于Java技术的即时聊天系统实现姓名:____XXXX_______系别:计算机与信息技术学院专业:网络安全_学号:____XXXXXXXX_____指导教师:____XXXXX______2015年5月8日 目录1绪论11.1背景11.2论文研究内容与方法12开发环境介绍12.1Java技术简介12.2开发工具简介13需求分析13.1功能性需求分析23.2非功能性需求分析24总体设计24.1功能模块设计24.2数据库设计35系统详细设计与实现55.1界面设计55.1.1登录界面55.1.2注册界面55.1.3修改密码界面65.1.4好友列表界面75.1.5聊天窗口界面85.1.6服务器端界面95.2功能实现95.2.1实现登录95.2.2实现注册95.2.3实现修改密码105.2.4添加、删除好友105.2.5移动黑名单115.2.6多对多聊天125.2.7显示表情125.2.8文件的发送135.2.9历史记录136测试阶段14总结14参考文献15致谢1516 基于Java技术的即时聊天系统实现摘要基于Java技术的即时聊天系统采用C/S架构,MyEclipse集成开发环境和MySQL数据库为开发环境,在Window7系统下使用Java程序设计语言开发的一款聊天系统。系统主要分为:用户注册、用户登录、修改密码、好友列表、聊天等五大模块;在功能上用户能够进行添加删除好友,移动黑名单,一对一、多对多的聊天,发送表情,传送文件等操作。关键词Java;即时聊天系统;C/S;MyEclipse;MySQL;ImplementationofInstantMessagingSystemBasedonJavaTechnologyAbstractJavatechnologyandC/Sarchitectureisusedintheinstantmessagingsystem, theMyEclipseintegrateddevelopmentenvironment and MySQLdatabaseasadevelopmentenvironmentbasedon Javaprogramminglanguage, theuseofWindow7systeminthedevelopment ofa chatsystem.Thesystem ismainlydividedinto: userregistration,userlogin, changepassword, listoffriends, chatandother fivemodules; infunction, userscan addanddeletefriends, mobile blacklist, onetoone, manytomanychat, sendexpression, transferfilesandother operations.KeywordsJava;instantmessagingsystem;C/S; MyEclipse; MySQL;16 商丘师范学院2015届本科毕业论文(设计)1绪论1.1背景随着互联网的蓬勃发展,即时聊天已经成为如今最流行的通讯方式,尤其在移动互联网方面,即时聊天已经与我们的生活息息相关。同时,Java是一种非常流行的程序设计语言,可以用来开发面向对象、跨平台的应用程序。即时聊天已经与我们的生活不可分割,利用自己学习到的Java语言开发一款自己的聊天软件是一个非常不错的选择,既能够检验自己对Java技术的掌握,同时又能够开发一款自己的聊天软件。1.2论文研究内容与方法基于Java技术的聊天系统主要是探索如何在Java技术下能够实现即时聊天的一些基本功能:用户注册,用户登录,添加删除好友,移动黑名单,实现一对一、多对多的聊天,能够发送表情,传送图片、视频等[1]。论文的设计主要采用了两种研究方法:一是文献资料研究的方法。在研究聊天系统现实中,本人通过图书馆、电子图书馆学习了Java语言中的一些编程技术;二是理论与实际相结合,既然掌握了技术与方法,那么就应该快速的进行实践,在软件的设计过程中,才能够理解到理论与现实的差距,遇到棘手问题,应该快速查阅资料快速攻破。2开发环境介绍本聊天系统是基于Java技术的,采用C/S结构,采用MVC的开发框架,利用MyEclipse、MySQL数据库作为开发工具。2.1Java技术简介Java是一种程序设计语言,主要应用于Android应用、JSP网站、PC和游戏控制台等领域。Java语言能够使开发者在设计程序的时候能够根据自己的情况自定义数据类型和关联操作,对于程序中的数据结构的改变或者代码的改变进行相应的操作;Java语言编写的程序编译后无需再次编译,可以在任何硬件设备下运行[1]。本次课题中主要用到Swing工具包中JFrame类,采用Java和Windows混合界面风格,作为开发程序的外观风格来设计聊天系统界面;其次,使用JavaSocket编程技术实现系统之间的网络通信[2]。2.2开发工具简介MyEclipse是一种集成开发软件。MyEclipse的功能强大,可以集成多种语言开发插件,进行相应开发语言的开发工作。MySQL是一个关系数据库,底层代码是C、C++编写的,通过编译测试达到代码的可移植;而且,它支持支持Linux、Windows、MscOS等多种操作系统,支持多线程。它的代码是开源的,用户可以在其基础上根据自己的需要进行二次开发;MySQL的体积小、速度快、成本低,因此一些小型网站的开发都选择MySQL作为其网站的数据库。3需求分析软件系统的开发是根据用户的需求来设计开发出用户需要的软件系统或者系统中的软件部分的过程。项目流程化能够促进项目的监管、人员的合理分配。16 商丘师范学院2015届本科毕业论文(设计)需求分析是指对即时聊天系统的功能、非功能进行全面分析的过程,对以后开发出来的软件应该实现什么样的功能,具有什么样的界面以及软件能够达到什么样的性能等。3.1功能性需求分析即时聊天系统在功能上主要能够实现如今人们经常用到的各种即时通讯软件的一些基本交流聊天的功能,主要的功能性需求如下:1.登录界面:注册用户能够进行登录,通过连接数据库进行判断用户是否能够进入好友列表界面。2.注册界面:用户可以注册,注册信息可以被添加到数据库,然后用于确定用户的登录。3.好友列表界面:用户能够自由添加、删除好友,移动黑名单等;同时能够实现双击好友,能够进入对应好友聊天窗口等4.聊天界面:能够将聊天的信息、表情等显示到对应的聊天界面上;能够发送文件、音乐、视频等;能够对聊天的历史记录进行简单的查看、翻页等。5.修改密码界面:让用户在忘记密码或者想修改密码时候,能够进行修改密码操作。3.2非功能性需求分析1.操作系统:Windows7旗舰版;2.硬盘:500G;3.开发平台:MyEclipse2014;4.数据库:MySQL。4总体设计软件设计是从软件的用户的需求出发,根据需求分析来确定软件系统功能设计的整体结构,然后划分各个功能模块,最后确定每个模块的实现算法以及编写具体的代码,最终形成了软件的具体设计方案[3]。4.1功能模块设计根据系统分析的结果画出系统功能模块图,对各个模块进行细分,确定模块相互结构关系。16 商丘师范学院2015届本科毕业论文(设计)图4-1系统功能模块图4.2数据库设计通过用户的注册,聊天等形成初步的数据需求;对数据需求进行概念上的设计,得到对应的E-R图;其次选择合适的方法,将E-R图转化为关系模型;然后对关系模型进行物理设计[4]。1.E-R图设计:分析确定各个数据表的字段、数据类型、关系等,画出E-R图。图4-2用户属性16 商丘师范学院2015届本科毕业论文(设计)图4-3好友属性图4-4历史记录属性2.物理设计:根据系统的数据类型,我们可以选择为数据库表中字段最合适的数据类型,字段大小,索引结构等[5]。表4-1用户信息表序列号字段描述类型空额外1id用户编号int(11)否主键(自增)2name用户名varchar(16)否3zhanghao用户帐号varchar(11)否唯一4password用户密码varchar(32)否5sex性别varchar(2)否6birthday出生年月varchar(32)否7address地址varchar(32)否表4-2好友信息表序列号字段描述类型空额外1id编号int(11)否主键(自增)2zhanghao用户帐号varchar(11)否外键3friendId好友帐号varchar(255)4blackname黑名单varchar(255)表4-3历史记录表序列号字段描述类型空额外1id编号int(11)否主键(自增)2zhanghao用户帐号varchar(32)否16 商丘师范学院2015届本科毕业论文(设计)3who属于者varchar(11)否外键4sendtime发送时间varchar(32)否5font字体类型varchar(64)否6record发送类容varchar(255)否7pic表情varchar(255)5系统详细设计与实现编码阶段是将软件设计阶段的各种描述转变成程序代码,在编码阶段应该注意编程语言的选择,在本次课题中,我们使用的是Java语言。5.1界面设计软件界面的设计是非常重要的,对于各个模块采用不同的组件进行设计。下面简单的介绍下如何设计软件的界面。5.1.1登录界面本即时聊天系统的登录界面(图:3-5),采用JFram容器,使用默认布局,通过setBounds()方法自定义位置。上部是一个JPanel,内置一个JLabel;中间是根据需要放置JLabel、JTExtField、JPasswordField;最下方放置一个JButton。具体代码如下:Sjp1_jbl=newJLabel(newImageIcon("image/login.jpg"));Sjp1_jbl.setBounds(0,-5,428,159);Sjbl1=newJLabel("zhanghao");Sjbl1.setBounds(70,165,30,30);Sjtf=newJTextField();Sjtf.setBounds(110,163,130,30);Sjbl2=newJLabel("mima");Sjbl2.setBounds(70,200,30,30);Sjbl3=newJLabel("zhuce");Sjbl3.setBounds(255,163,52,30);Sjpf=newJPasswordField();Sjpf.setBounds(110,200,130,30);Sjbl4=newJLabel("xiugai");Sjbl4.setBounds(255,200,52,30);Sjp3_jb1=newJButton(newImageIcon("image/denglu.png"));Sjp3_jb1.setBounds(85,270,195,30);图5-1登录界面5.1.2注册界面在注册界面(3-6)中同样采用默认布局自定义位置。对于JLabel、JTExtField、JPasswordField如何放置就不讲太多了,在这里主要讲下新引入的知识点HashMap集合和Graphics绘画技术。HashMap是集合类,我们可以通过put、get方法向其中添值、取值,16 商丘师范学院2015届本科毕业论文(设计)其最重要的一点是它是键值对形式的,通过一个键就能取出相应的值,对于本界面的全国省市联动,正好可以用到地址的灵活变动。通过For循环创建每个省份按钮,并添加addActionListener监听器,获取其对应省份代号,再通过get方法向HashMap索要其对应的ID值。代码如下:添加:HashMaphm=newHashMap<>();FOR(INTi=0;i();//向hm中添加一个客户端通讯线程publicstaticvoidSetClients(StringNo,ServerConnecClientSct){Thread.put(No,Sct);}publicstaticServerConnectClientgetClient(StringNo){returnThread.get(No);}图5-6添加、删除好友选项框图5-7添加好友提示框5.2.5移动黑名单黑名单功能是每个即时聊天软件必不可少的功能,对于本系统的黑名单功能,那么我又是如何实现的呢?其实在方法是比较简单的,JTree提供一个自带的方法,它允许子节点进行移动,我们能够在界面上看到相互之间的移动,那么剩下的问题就是数据库存储的问题了。对于通常系统的黑名单,你将对方添加至黑名单,但对方并未将你删除或者也添加至黑名单;而且本系统的数据库中的好友字段在添加好友的时候只是将要添加好友的帐号追加到自己的好友字段中,好友的字段不做任何的处理,所以在添加黑名单的时候,你不知道自己的好友字段中是否有此帐号;本着简单的原则,我们只要将你想添加黑名单的帐号追加到你的黑名单字段,对于其在你好友字段中不做任何的处理。只需要在提取好友ID信息的时候把存在黑名单中的好友ID移出即可。代码如下:publicArrayListgetfriend(StringuserId){Stringsql1="selectfriendIdfromfriendwherezhanghao="+userId+"limit1";Stringsql2="selectzhanghaofromfriendwherefriendIdlike'%"+userId+"+%'";Stringsql3="selectblacknamefromfriendwherezhanghao="+userId+"limit1";SqlHelpersqlhelp=newSqlHelper();ArrayListstr=sqlhelp.execute_getfriends(sql1,sql2,sql3);ArrayListal=newArrayList();Object[]tr1=(Object[])tr.get(0);Object[]tr2=(Object[])tr.get(1);16 商丘师范学院2015届本科毕业论文(设计)for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭