网络聊天工具系统的设计与实现

网络聊天工具系统的设计与实现

ID:10592717

大小:743.50 KB

页数:25页

时间:2018-07-07

上传者:U-3183
网络聊天工具系统的设计与实现_第1页
网络聊天工具系统的设计与实现_第2页
网络聊天工具系统的设计与实现_第3页
网络聊天工具系统的设计与实现_第4页
网络聊天工具系统的设计与实现_第5页
资源描述:

《网络聊天工具系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

综合课程设计报告网络聊天工具系统的设计与实现学生姓名:指导教师:所在系:电子信息系所学专业:计算机科学与技术年级:08级(2)班2010年12月 11 目录摘要1第1章前言21.1系统前景21.2开发环境简介21.3系统主要功能2第2章需求分析32.1功能需求32.2应用平台需求32.3其他需求3第3章概要设计43.1系统总体结构43.2网络聊天系统模块设计43.2.1用户上下线信息显示模块43.2.2转发信息模块43.2.3用户注册模块53.2.4修改密码模块53.2.5用户登录模块53.2.6群聊模块53.2.7私聊模块5第4章详细设计64.1服务器64.2客户端74.2.1客户端整体设计74.2.2登录模块设计84.2.3修改模块设计84.2.4注册模块设计104.2.5消息格式化模块114.2.6群聊模块114.2.7私聊模块12第5章系统测试155.1程序主界面155.2服务器155.3用户注册155.4用户修改165.5群聊对话175.6私聊对话18第六章小结20参考文献211 1摘要本应用软件运用java语言编写,针对用户对网络实时聊天工具的需求设计,可实现基本的在线聊天功能。其主要功能如下:1)用户注册、登录及用户密码修改;2)在线用户群聊;3)在线用户与某一用户私聊。本系统基于TCP传输协议设计,运用Swing组件构建界面,利用JAVA面向对象的思想开发。开发过程中利用了计算机网络编程的基本理论知识。通过Socket实现客户端与服务器的连接,利用对象输入、输出流对信息进行读取与转发,采用多线程的方式实现多客户端聊天。关键字:Swing多线程TCPSocket1 第1章前言1.1系统前景随着社会的发展,计算机网络日新月异,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系已经成为当今社会人们主流的联系方式。两台计算机之间进行即时通讯等交流方式已经成为必然的潮流,因此出现了QQ等聊天工具。然而QQ等聊天工具虽然方便、实用,但是,娱乐功能太多,占据内存空间过大,从一定程度上来说,演变成了一种娱乐工具,不能作为即时通讯的专用工具。而我们的设计的网络聊天工具是专用于实现计算机之间即时通讯的,消耗内存小,界面友好、简洁。本系统使用当前流行的JAVA语言编写,采用面向对象的思想设计,基于TCP传输控制协议。切实考虑大众用户的需求,为方便用户之间的沟通,可为大家提供了一个很好的交流渠道和聊天环境。1.2开发环境简介Java语言自1995年诞生以来在短短的几年时间内以迅猛的速度席卷全球,已形成一种专门的技术。它是一种简单的、面向对象的、分布式的、强壮的、安全的、体系结构中立的、可移植的,高性能的、多线程的和动态的语言。1.3系统主要功能本系统可以实现用户注册,登陆及密码的修改本系统可以实现多用户在线群聊本系统可以实现在线用户私聊223 第2章需求分析2.1功能需求(1)用户可以注册新用户(2)用户可以用注册成功的用户名和密码登陆系统(3)用户注册的帐号密码可以自动保存(4)用户可以修改自己的密码(5)多个用户之间可以进行群聊(6)用户可以查看到所有在线好友(7)用户可以点击好友昵称进行一对一私聊(8)用户可以清空聊天窗口中的消息2.2应用平台需求操作系统:windowsxp2.3其他需求系统功能简洁,界面美观、友好,操作方便。运行速度快,消耗内存空间较小,跨平台性较强。322 第3章概要设计3.1系统总体结构图3.1网络聊天工具系统总体结构网络聊天工具服务器客户端用户注册模块用户登录模块修改密码模块转发信息模块上下线用户显示模块群聊模块私聊模块3.2网络聊天系统模块设计3.2.1用户上下线信息显示模块服务器开启6666端口用于监听,有用户请求连接时,通过套接字获取客户端ip地址,从而显示在线用户信息;当用户下线时,连接异常抛出,处理异常,显示下线信息。3.2.2转发信息模块22 服务器定义map数组用于存储要求请求连接用户的端口号以及该端口客户发送的信息,该数组服务器、客户端共享,客户端读取该信息,从而实现信息转发。3.2.3用户注册模块通过jdbc将Java与数据库连接,用户输入用户名、密码,若通过合法性检测,则将该用户注册的信息写入后台数据库。3.2.4修改密码模块用户输入用户名、旧密码、新密码,若通过合法性检测,则把修改后的信息重新写入后台数据库。3.2.5用户登录模块用户输入用户名、密码以及服务器ip地址,如果通过合法性检测则进入聊天主界面。3.2.6群聊模块客户端点击“发送信息”按钮,该客户端的ip地址、端口号以及信息内容一起打包写入服务器map数组,客户端通过线程可以读取该数组中的内容,从而实现群聊。3.2.7私聊模块客户端用户点击“开始私聊”按钮,输入对方的昵称以及ip地址,从而该用户开启端口用于监听,同时定义输入、输出流文件,客户端延迟片刻,然后与该端口取得连接。当任意一方点击“发送信息”按钮时,和群聊同一机理,通过读取共享文件内容实现私聊。22 第4章详细设计4.1服务器开始创建套接字Socket套接字绑定到本地端口上套接字监听客户端请求是否有连接请求返回套接字进行通信保存套接字中的内容IP连接是否正常启动转发消息的线程读取套接字中的内容保存所有在线用户名将在线用户名单与“聊天启动”标志写入输出流将消息转发给所有在线用户聊天是否启动结束是否是显示用户下线信息否是信息写入输出流否图4.1服务器流程图说明:(1)服务器界面仅显示用户上线与下线的信息。(2)程序运行过程中,服务器首先创建套接字Socket和ServerSocket,开设本地端口22 。ServerSocket用于监听用户连接请求,当请求到达后,服务器接受连接请求,返回一个新的对应于此次连接的套接字,该套接字用于和客户端进行通信,而原来的套接字则返回等待另一客户请求。(3)服务器不可用于聊天,只用于将客户端群聊时发送的信息转发给每一个在线用户。4.2客户端4.2.1客户端整体设计否开始登录注册修改输入各项信息验证是否合法开始群聊点击好友昵称输入好友IP进入私聊输入各项信息是否合法信息保存到数据库中修改成功输入各项信息的是否合法信息保存到数据库中注册成功结束否否是是是图4.2客户端整体流程图说明:(1)运行时,应先建立数据源,再建立用户名数据库,用来存放用户信息。(2)客户端界面启动后,点击相应按钮,实现相应功能。4.2.2登录模块设计22 开始显示客户端主界面连接数据库输入用户名、密码、服务器IP点击确定用户名是否为空密码是否为空IP是否为空用户名密码是否正确调用群聊函数显示群聊界面结束是否是否否否是是图4.3登录模块流程图说明:进入客户端主界面后,填写用户名、密码、IP,进行合法性验证,若通过验证,即可进入群聊界面进行群聊。同时,右侧在线好友列表显示当前在线好友昵称,服务器界面显示当前IP地址的用户在线。4.2.3修改模块设计22 开始输入用户名、旧密码、新密码、确认新密码点击确定连接数据库用户名、旧密码、新密码、确认新密码是否为空用户名、密码长度是否超过十位新密码与确认密码是否一致用户名密码是否正确修改成功结束否否是是是是否否4.4修改模块流程图说明:用户进入客户端主界面后,点击修改即可修改密码。正确输入各项信息,即可成功修改密码。点击取消,回到客户端主界面。4.2.4注册模块设计22 图4.5注册模块流程图开始输入用户名、密码用户名、密码是否为空用户名密码长度是否超过十位用户名密码是否只含数字和字母连接数据库用户名是否已存在注册成功结束否是是否是否是否说明:用户进入客户端主界面后,选择注册按钮,若用户名、密码长度不超过10位,并且全为数字和字母组成则连接数据库,检查该用户是否已经存在,若不存在,则注册成功信息录入数据库。点击返回按钮,返回客户端主界面。22 4.2.5消息格式化模块转发的消息用户名标志消息格式化类将信息整合成固定格式传送“用户名“+在+”时间“+说+”转发的消息“结束开始对应参数传入消息格式化类图4.6消息格式化流程图说明:消息在整个传递过程中都遵循特定的格式,对象输入输出流中的信息的传输格式由消息格式化类决定,同时消息格式化类将消息整合,固定成特定的格式显示到用户的聊天窗口中。4.2.6群聊模块22 开始创建套接字写入服务器端口号与IP向服务器发起连接套接字中内容流入对象输出流启动客户端线程读取套接字中的内容检查标志聊天已启动发送信息启动在线用户列表添加该用户服务器转发的信息显示到各用户聊天窗口结束图4.7群聊模块流程图说明:群聊时,客户端点击主界面发送消息按钮,信息写入对象输出流,经过套接字传输至服务器,服务器将消息格式化后转发给各个在线用户。4.2.7私聊模块(1)私聊模块中的客户端模块22 提示服务器尚未启动或中断开始点击好友列表中好友昵称输入好友IP地址好友名、私聊发起人用户名与“私聊启动”写入消息格式化类格式化消息写入对象输出流群聊窗口消失标记为客户端等待好友“服务器”先启动好友服务器是否启动调用私聊线程发送的消息写入流中创建套接字套接字中写入好友IP地址与端口号,连接服务器套接字中内容写入流中开私聊服务器线程读套接字中内容消息是否为空传送消息结束否否是是图4.8私聊客户端流程图22 说明:私聊时,发起方作为客户端,好友作为服务器,发起方等待服务器先启动,服务器启动后,发起方开始连接,连接成功后开始传送消息。(2)私聊模块中服务器端模块开始客户端线程启动格式中标记“私聊”并且昵称与接收方相同的用户启动群聊界面消失标记为服务器启动私聊线程发送信息写入流中创建套接字启用本地端口监听是否有客户端连接读套接字中内容格式化类将消息格式化发送消息结束否是图4.9私聊服务器模块流程图说明:私聊时,接受方作为服务器,开启本地端口用于监听连接,当有连接时,进行私聊,读取消息并发送。22 第5章系统测试、安装与使用说明在该系统中,群聊、私聊的功能基本实现,并且运行正常。用户可选择安装客户端软件或者服务器软件,安装客户端软件的用户需预先建立数据源MyQQ,连接到安装包下的数据库QQUser。正确操作后即可使用。5.1程序主界面运行程序后,弹出QQ登陆界面,等待用户操作。如图5.1所示图5.1QQ登陆界面5.2服务器连接客户端,传输客户端之间的对话信息和显示用户上下线情况。如图5.2所示图5.2服务器上下线情况统计界面5.3用户注册在QQ登陆界面,点击“注册”,弹出注册页面,按要求输入帐户和密码。如图5.3所示22 图5.3注册账户和密码界面例如,在QQ账户栏输入“123”,QQ密码栏输入“123”,再点击“完成”,显示“注册成功!”,再点击“确定”,则可以返回QQ登陆界面进行登录操作。如图5.4所示图5.4注册成功后界面5.4用户修改在QQ登陆界面,点击“修改”,则会跳转到用户修改界面。如图5.5所示图5.5修改用户密码界面例如,在用户名栏输入123.旧密码栏输入123,新密码和确认新密码栏都输入456,再点击“确定”,弹出相应的信息框提示。点击“确定”,则可以进行QQ登陆操作。如图5.6所示图5.6修改成功后界面5.5群聊对话22 在QQ登陆界面输入正确的帐户,密码和服务器IP地址。例如在QQ账户栏分别输入123、,aaa,QQ密码栏输入456、bbb;服务器IP地址栏均输入“127.0.0.1”,再点击“登陆”,则会弹出相应的信息框提示。如图5.7所示图5.7验证成功界面分别点击“确定”,则弹出两个对话框,即进入群聊状态,等待用户输入对话文字。如图5.8所示图5.8群聊对话框在任意一方文本框内输入文字,例如,在文本框内输入“你好呀!我是新来的~”,再点击“发送信息”,则两个客户的粉红色信息显示框中均会显示信息内容。如图5.9所示22 图5.9发送消息5.6私聊对话点击右上方私聊对象,弹出提示框,如图5.10所示图5.10输入好友昵称和好友IP地址例如,在好友IP地址栏输入“127.0.0.1”,再点击“确定”,则会弹出私聊对话框。如图5.11所示图5.11私聊对话界面22 任意一方发出信息,对方皆可以正常接收,从而实现私聊,如图5.12所示图5.12私聊的实现界面22 第六章小结程序设计过程中遇到的问题以及解决方案:(1)最初的程序当中,我们没有考虑到用户使用的方便性,IP地址的更改都是在代码当中实现的,在老师的提示下,我们认识到了这种方式是不可行的。后来,在登录界面中增加了IP地址输入框,使用户使用更方便,系统更加合理。(2)在发起私聊时,最初的程序要求用户在群聊消息输入框中输入好友的昵称,再点击私聊按钮,才可以发起私聊,在老师的提示下,我们认识到了这种操作方式的不方便性。于是将好友列表显示框由JtextArea改成了Jlist,点击好友昵称即可弹出IP地址输入框,方便、快捷,也增加了程序的安全性、合法性。有待解决的问题:(1)用户下线时,服务器不能显示该下线用户的ip地址,只能监测有用户下线;(2)注册的用户可以重复登陆;(3)由于开设端口的问题,仅能供一对用户私聊。课程设计的心得体会:首先我们由衷感谢老师提供给我们这样一个锻炼自己的机会,让我们感受到学来的知识不只是用来完成试卷的。其次我们在完成课程设计的过程中体会到团队合作的乐趣。我们学会了积极的同团队成员交流,取长补短,共同进步。最后,在这次实训中,虽然我们已经对程序进行了不断的修改,但是很多地方还存在着严重的不足,由于时间的限制我们只完成到了这个层次,今后的学习中,我们将进一步对其进行修改。22 参考文献:[1]朱福喜.面向对象与Java程序设计.北京:清华大学出版社,2010[2]朱福喜,唐晓军编著.Java编程技巧与开发实例.北京:人民邮电出版社,2004[3]朗波.JAVA语言程序设计.北京:清华大学出版社,2005[4]赵池龙,姜义平,张建.软件工程实践教程.北京:电子工业出版社,2006[5]赵文清,姜波.基于Socket的Java语言网络通讯机制和程序设计信息技术.北京:清华大学出版社,200622 安徽师范大学皖江学院课程设计成绩评定单题目:学生姓名指导教师李杰指导教师评语:指导教师评定设计成绩等级指导教师(签章):200年月日22

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

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

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