ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:455.59KB ,
资源ID:9497279      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9497279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(仿QQ聊天系统实验报告.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

仿QQ聊天系统实验报告.docx

1、仿QQ聊天系统实验报告软件工程项目实践 大作业 仿QQ软件的设计与实现软件工程项目实践 大作业仿QQ软件的设计与实现班级:20090615学号:2009061503姓名:教师:于 金 峰平时成绩30分: + 大作业成绩:70分: = 总分:_ _ 成绩: _ 教师评语:小计F1F2F3F4F53622252846532555F6F7F8F9F102544315224324教师签名:2012年6月一、项目可行研究新近一两年Android手机如雨后春笋般涨势迅猛,由此基于Android系统的应用开发也变得更加普遍,结合本次课程的学习,也为了更好的培养我们的自主开发能力,我们小组开发了这个模仿QQ的

2、聊天系统。二、需求阶段1.系统功能需求(1)登录功能。(2)客户可以通过服务器转发,实现一对一和多对多聊天。(3)实现呼叫功能。(4)客户端程序应该可以实时显示目前其它用户的状态。(5)应该具有易用、美观的图形界面。2. 系统性能需求实用性:为信息交流提供方便,有效进行作业管理。操作简单:本系统应该适用于不同水平的使用者,包括事业单位和企业单位,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。技术先进:产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。安装使用

3、简便:服务器端的安装简洁明了,客户机无需再装任何软件就可以直接注册登陆聊天。适应性:应该能广泛应用于不同类型的企事业单位。系统采用模块化设计,用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用。 代码可读性好:文中的代码将尽可能简洁,易懂。3. 系统运行需求1、移动客户端需500MHz及以上的处理器2、移动客户端需256MB及以上的ROM空间3、移动客户端需256MB及以上的RAM空间4、移动客户端需具有WiFi/GRPS网络接收模块,能正常连接到网络5、服务端需具有P4 1.6GHz及以上的处理器6、服务端需具有80GB及以上的硬板空间7、服务端需具有1GB及以上的内存

4、空间三、设计过程1. 业务流程图业务流程图2. 功能结构图3. 数据流图(4. ER图图6 ER图5. 后台数据库设计基于服务器跨平台运行的架构,服务器的后台数据库使用了SQL Server2005。6数据库设计表主键表:四、概要设计1. 系统实现原理即时通讯的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而即时通讯只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录

5、在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。图9 系统实现原理图2. 系统实现层次图:图10 系统实现层次图3各模块详细功能服务器端结构Program.cs:服务器启动操作。 DBHelper.cs:服务器端连接数据库,负责服务器端与数据库连接读取数据操作。SocketHost.cs:服务器端监听客户端连接,并处理各种请求。SocketRequest.cs:服务器端接受客户端消息链转化为json格式的数据定义。SocketResponse.cs:服务器端发送客户端消息链转化为json格式的数据定义。IResponseM

6、anager.cs :服务器接受消息处理的抽象类。LogonResponseManager.cs: 服务器接受客户端登录请求操作。SocketFindUser.cs:服务器接收客户端查找好友消息转化为json格式的数据定义UpdateUserList.cs:服务器更新在线用户链表的json格式的数据定义SendResponseManager.cs:服务器端接受客户端聊天信息和请求并进行转发。五、详细设计.1. 系统总体流程图图11 系统总体流程图六、代码开发服务器端代码开发:1. 用户注册1).下面是注册验证账户代码:2.用户登陆(1)去数据库读用户数据 打开用户数据库文件“User.txt”

7、,将用户数据对象集载入内存,以供下面的程序使用。/ 读文件 FileInputStream file3 = new FileInputStream(user.txt); ObjectInputStream objInput1 = new ObjectInputStream(file3); vList = (Vector) objInput1.readObject();(2)验证用户 代码实现用户登陆程序模块如下3.消息管理客户端: CLoginDlg - 登陆到服务器 COptionsDlg - 设置要连接的服务器的地址及端口号 CReplyDlg - 显示好友发送的信息 CSendMsgDl

8、g - 给好友发送信息 CApplyDlg - 申请新的用户 CServerInfo - 显示服务器消息 CLogDlg - 显示聊天纪录服务器端:用户及发送信息结构体类型:struct UserInfo/-用户信息结构体 char _QQnum9;/号码 char _QQname10;/昵称 int _nSex;/性别, char _Ip20;/ip int _Port;/端口号 bool _bState;/当前状态 char _nFace5; /头像struct MsgInfo /消息结构体 UserInfo _pSender;/发消息人 char _cRecieverNum9;/接收人

9、char _msg255;/消息内容 long _nTime;/发送时间 char _cPasswd11;/登陆密码 int _nType; /消息类型统屏蔽。4.用户退出(1)接收退出信息 当用户退出时,客户端将会用基于Socket的对象输出流发送给服务器退出对象。(2)在线列表中删除用户 用户退出后应该把用户从在线列表中删除,否则用户退出用户还在在线列表中,那么该用户下次将会无法登录。(3)更新在线列表 用户退出后将服务器端监控界面的用户列表更新。否则用户数据将会不同步。用户退出模块程序:public void serverExit() Exit exit = new Exit(); ex

10、it = (Exit) obj; removeUser(exit); / chenmin if (sFrame.ti.equals(exit.exitname) sFrame.ti = ; Date t = new Date(); log(用户 + exit.exitname + 已经退出, + 退出时间: + t.toLocaleString(); freshServerUserList(); (4)返回给客户端 当以上信息都封装成功后,打开与客户端连接的Socket的输出流,然后再用ObjectOutputStream对象输出流包装后输出给客户端。public void serverCha

11、t() / 将接收到的对象值赋给聊天信息的序列化对象 Chat cObj = new Chat(); cObj = (Chat) obj; / chenmin cObj.chatMessage = WordFilter.filter(cObj.chatMessage); chatLog(cObj); / 将聊天信息的序列化对象填加到保存聊天信息的矢量中 userChat.addElement(Chat) cObj); return; 。七、项目管理由组长宁海名分配八、测试服务器端运行图:聊天测试图: 九、总结通过这次实验我进一步熟悉了程序开发的过程,从里边也发现了自己还存在很多问题,学习不够踏实,因此做项目的时候也遇到不少困难,还好经过我们小组讨论最终解决了问题,最好我们完成了试验项目,心里很欣慰,同时也有点失望,发现了自己的缺点就要改正,以后的学习生活中要加倍努力,更好的完成老师留下的任务。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2