MINIQQ程序开发文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MINIQQ程序开发文档
一、日志
1--4周:听说我们的课程设计是MiniQq,虽然腾讯QQ天天用,对于它的功能很了解,但由于我们数字媒体技术班另开了PhotoShop课程,一直没有实验课,对于MiniQq只是有个模糊的概念,大体的印象,只是一直在积累编写MINIQQ 所需要用到的只是,如图形用户界面Gui、多线程、网络、数据库等。
5--9周:开始上实验课。
(1)对图形用户界面进行了些小实验,熟悉GUI的各种组件,容器,布局管理器以及事件监听器。
(2)对多线程进行了些小实验,熟悉多线程。
(3)开始学习网络编程,写一些基于本机IP(127.0.0.1)的小程序,熟悉java网络
(4)逐渐把前面学到的图形用户界面,多线程和网络结合起来,进行针对性训练。
(5)没来得及熟悉数据库就到了第十周,觉得应该开始写了,所以对数据库的掌握程度很低。
10--13周:开始写MINIQQ
由于是第一次做一个项目,没有任何经验,觉得没有一点思路,对于程序的大体轮廓很模糊,所以决定到网上找找JA V A 教学视频,找到了马士兵的尚学堂以及韩顺平的山寨版QQ
教学视频。其中,韩顺平老师的视频对我影响最大,以至于我的程序采用了和他类似的思路和模块。其实,通过看视频,不光是帮助了我写这个QQ项目,更从中得到了做项目的思路想法也从中得到了一些以前不知道的东西加深了对Java
的了解。
再设计这个QQ项目时,基本上是按照老师的要求来做,实现了用户注册、用户登录、好友管理(查找、添加、删除好友等)、一对一、多对多聊天、群聊等。只不过,由于数据库的基础在写程序前不扎实,安装SQL SEVERE时,总是无法新建一个数据库。在经历了多次失败,在快要交程序的情况下,选择先放弃数据库,使用文本文档存储信息,基本达到了和数据库同样的目的。只是这样程序的含金量就大大降低,因此,以后一定要在对程序进行改造,使用数据库,好在现在对于数据库也已经基本熟悉。
二、开发
通过看视频,在综合自己平时使用QQ的经验,大体勾画了下设计的蓝图。开发过程中决定使用模块,总的来说分为客户端、服务器两个模块。
(1)原理:在客户端和服务器之间通过网络建立基于TCP/IP协议的连接,用来传递信息。用户通过注册界面将自己的昵称、密码发送到服务器进行注册,服务器将该用户信息保存。当用户通过登陆界面进行登录时,服务器将检索自
己存储的数据,如果该用户已注册,且登录信息正确,则返回给客户端登陆成功的信息,客户端则在接收到信息后new 一个好友列表(好友列表存在客户端,在用户注册后自动生成文件存储),start一个线程是该用户和服务器连接上,用户在查找好友是,将好友信息发送给服务器,服务器在确定该用户存在后允许添加。在显示在线好友时,用户向服务器发出要他在线好友的请求,服务器根据所存储的线程,得到该好友的全部在线好友,并返回给客户端。在聊天时,客户端将消息以及接受者发给服务器,服务器在转发给接受者。群聊则是在此基础上,将信息转发给在这个群里的多个人。
三、测试
通过最近几天的连续测试,所写的程序基本完成了课题设计的要求,只是程序的健壮性还不够,仍然发现了一些问题,比如说,在一个用户退出后,它的线程仍未关闭,他的好友
的好友列表上仍然显示其在线。永远没有完美的程序,所以这很正常,然而作为程序员,要做的就是是程序尽量完美,逐渐修复漏洞,减少bug。