收藏 分销(赏)

网络聊天工具的设计与实现毕业论文设计.doc

上传人:快乐****生活 文档编号:3888591 上传时间:2024-07-23 格式:DOC 页数:20 大小:122.04KB 下载积分:10 金币
下载 相关 举报
网络聊天工具的设计与实现毕业论文设计.doc_第1页
第1页 / 共20页
网络聊天工具的设计与实现毕业论文设计.doc_第2页
第2页 / 共20页


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

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服