作品展示1——仿QQ即时通讯软件

 

仿QQ即时通讯软件

 

前要说明

        编程环境:Window7/WinXP、Visual C++6.0        

 

        软件分客户端、服务器、数据库三块。其中,服务器和数据库整合在单机上了。

 

====================================================

 

客户端登录界面

 

=======================================================

 

客户端主界面:(最大化与正常窗体)


 

====================================================================

 

项目花絮:



=======================================================

 

 

 

聊天:


 

 

 

 

 

 

程序框架及细节说明:

    客户端:

        登录对话框+主界面框+聊天对话框+查找添加好友对话框+其他功能框(换肤、提 示)……

    服务器端:

        后台运行(为测试方便,做成了可见的空白对话框)

    数据库:

        为测试方便,采用最简单的Access。全局共三张表

 

 

 

 



 

 

 

实现手段

         MFC下的编程技术是整个设计的核心。在仔细学习了孙鑫老师的视频教程后,对网络编程做了一次梳理,本道设计采用的是基本套接字SOCKET的编程,基于UDP实现。

         协议设计。为了把客户端的Message发送到服务器端,在其头部添加一些界定标识,方便封装和解析。我不知道这样的设计是否是所谓的协议,但我把这类似html的语法规则应用进来后带来的方便确实让人振奋。这是我所设计中于功能部分最核心的成分了,它是支撑整个通讯的基础。

         特效部分。QQ在各个版本中,都比较关注界面的优化处理及特效表现,当然良好的外包装总是让人心仪的,所以我在功能特效上花了一点功夫。诸如界面的淡入淡出、透明处理、滑动效果、边缘显隐、上下线提醒框的透明显隐、聊天音效处理等都有所涉猎。

 

潜在问题:

         多线程设计。不必要的花哨会提高维护上的困难度,在协议处理的部分,又设计了某些对话框的多线程,导致程序不太稳定,体现为某些功能时灵时不灵。

 

 

设计感想:

         已经过去快有一个月了,当初要做这款软件,其实目的很简单,只是用来作能力说明的。不过整个过程,我也学会了不少东西,这种经验是弥足珍贵的,所以我很用心的完成了这个设计。但同时,因为它不具有足够的代表性和很高的复杂度,加之它是由我一人全权设计,在很多地方都有欠考虑,每次重审都能发现,从大局设计到具体细节步骤有很多需要改进甚至重写的地方,而且都只能事后测试了才能体悟得到。事实上,当写下这篇时,已经有过好几个版本的功能补丁了,按说差不多就该要重新设计框架了,但我确实没多少精力重写了,现准备攻一下算法与数据结构。在做过了界面这一块后,明确了自己的兴趣与追求,其实个人还是比较偏好性能调优和底层安全技术,这种需要良好全局观把控能力的活儿好像更对我的胃口一点。我喜欢全局的东西、系统的东西,自己制定规条设计、规范编程。

 

 

P.S.

    如上所示的界面效果采自第三方控件库实现的,它需要加载自定义的xml文件,当然这个控件库是商务软件,而因为我是学生,只是用来作明年的毕业设计和这次作品展示的,所以能够用到它的Trial Version(试用版)。其实我有发现,貌似老版的QQ也是用了类似这种技术加载xml文件实现界面效果的,是的吧?嗯,应该是的。

 

你可能感兴趣的:(作品展示1——仿QQ即时通讯软件)