着飞跃。
为了满足用户的需求,包括腾讯公司的聊天软件QQ在内,
许多即时性聊天工具都推出了语音聊天、视频聊天功能模块。
本课题研究的是基于vc的聊天系统,用VC++编写的程序,
程序实现一般的文字聊天功能可作为小型简洁的交流工具。
本系统采用基于Socket的方法实现通信交流,
基于Socket的通信软件可以成为提供一种良好
安全快速的通信机制。
它的实现无需对硬件有更高的要求,具有实现成本低廉的优点,
它的使用能有效地提高交流沟通的速率提高网络通信的使用效率
可以很好地解决传统沟通不具有的各种通信需求。
基于Socket的聊天工具很好地诠释了Socket通信的原理,
并且在企业内部通信、教学、讨论等应用中都具有一定的实用价值。
它具有信息收发速度快,保密性好,占用网络带宽资源低,
占用服务器吞吐能力低易于编程实现等优点[3]。
基于Socket的通信软件应用范围广阔,不但可以处理传统的通信需求,
而且也能扩展以适应新型的网络应用如网络教育
数据影音传输等拥有广泛的应用前景。
如今即时通信工具一般采用UDP或者 TCP协议体系来实现,
开发技术已经比较成熟。
UDP的实时性比较好,但是不一定提供可靠的数据传输,
TCP可以提供可靠的数据传输本课题采用TCP完成小型聊天系统的设计。
1.2 论文的主要内容
本课题主要研究的是小型聊天系统,
该聊天系统采用客户端/服务器(C/S)模式和TCP连接
能实现用户在客户端与服务器间传递文字信息。
它有两个程序组成:
服务器和客户端,
首先需要登录服务器
需要指定服务器地址和端口号同时设置一个网名
与服务器建立连接如果所取网名已经被其他已经登录的客户端使用
服务器会告诉客户端要求重新登录。
登录后,客户端各用户可以发送文字信息,
相互聊天。
服务器模块主要用来维护网络上所有用户的信息,
如用户名;聊天客户端模块主要包括用户登录、发送信息、接收信息等。
整个工程采用结构化的方式进行编译,逐步完善系统功能。
研究本课题需要熟练掌握VC++语言,并且熟悉VC平台的操作,
利用socket编程技术、TCP协议进行局域网聊天软件的实际开发。
选择TCP协议而不选UDP是为了保证信息的可靠性,
不同于UDP协议TCP要求在获得可靠连接后才发送消息。
第一章首先主要讨论课题研究的目的和意义,
并对主要内容作了简单的介绍以及介绍了目前国内外聊天系统的现状
对国内QQ和国外MSN聊天软件做出了概括性的介绍并作了一些比较。
其次介绍开发平台和网络编程,对Socket的历史和发展简单描述。
第二章本论文的主体部分讨论了整个聊天系统的设计,
介绍了客户端/服务器模型并讨论了系统的实现原理和界面设计
以及聊天系统的实现过程和对各个功能的实现做了详细的分析
第三章给出系统软件的调试论述
对设计过程中出现的问题进行分析概括了在软件开发进行测试的重要性。
并对今后的继续完善做了展望!
最后是总结、参考文献和致谢部分,
主要表达了在论文的完成过程中遇到的问题以及得到指导老师和热情的同学得帮助的感谢!
1.3 国内外聊天系统的现状
目前国内外做聊天系统的公司很多
产品也琳琅满目国内有诸如腾讯QQ、新浪UC、网易泡泡等
国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。
本人取最具代表性的QQ和MSN进行了一些研究,
作为开发聊天系统的准备。
腾讯无疑是国内即时通讯市场的霸主,自从99年进入即时通讯领域并迅速占市场之后,
其在国内用户数量始终高居榜首即使近几年面对微软MSN的强大攻势
腾讯QQ的时常占有率依然稳步增长。
腾讯的成功与其对QQ的不断创新和完善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。
可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。
并且在两个客户端之间不能建立直连的情况下,
才由服务器进行中转通信。
图1-1 腾讯QQ服务器-客户端模型
与腾讯QQ不同,
微软的MSN Messenger只使用了TCP作为传输层通信协议
所有客户端与服务器进行连接然后通过与服务器的TCP连接进行中转通信。
图1-2 MSN服务器-客户端模型
腾讯使用的模型中,
服务器主要处理客户端各种状态的控制可以极大减轻服务器的处理压力
但其内部协议和实现复杂度都较高。
而MSN Messenger所有数据都要经过服务器,
服务器压力可想而知(难怪平时很少见到使用MSN进行语音视频聊天的)。
上述软件都实现了广域网上的即时通信,
在使用方面各有特色在实现方面也各有所长。
但是随着企业规模的扩大,业务量的增加,
企业内部的信息越来越私密
企业只希望员工通过内部局域网进行沟通与交流
避免企业内部机密通过Internet泄露到外部所以局域网的聊天工具也占了很大的市场。
1.4 开发环境及编程语言介绍
1.4.1 Visual C++可视化集成开发环境
VC6.0是微软推出的一款可视化编程工具,
适用面非常广泛。
VC6.0包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,
以及一套联机文档。
使用VC6.0,可以完成创建、调试、修改应用程序等的各种操作。
VC6.0采用标准的多窗口Windows用户界面,
并增加了一些新特性使得开发环境更易于使用
用户很容易学会它的使用方法。
由于VC6.0是一个可视化的开发工具,在介绍VC6.0的各个组成部分之前,
首先了解一下可视化编程的概念。
可视化技术是当前发展迅速并引人注目的技术之一,
它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来[4]。
可视化编程是它的重要应用之一。
所谓可视化编程,
就是指:
在软件开发过程中,
用直观的具有一定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、浏览操作
软件开发过程表现为鼠标点击按钮和拖放图形化的对象以及指定对象的属性、行为的过程。
这种可视化的编程方法易学易用,而且大大提高了工作效率[5]。
Visual C++所提供的MFC(Microsoft基本类库),对Window98/NT/2000所用的Win32 API(应用程序接口)进行了彻底的封装,这使得可以使用完全的面向对象的编程方法来进行Windows程序的开发,并能够大大缩短程序的开发周期,降低开发成本,把Windows程序员从大量复杂的劳动中解放出来。
Visual C++给应用程序的开发人员提供了丰富的功能,
Visual C++通过MFC库提供了一个完整的应用程序的骨架
开发人员可以忽略应用程序的入口点和结束地点
并且可以忽略消息在应用程序的流动顺序通过MFC的支持Visual C++也提供了Document-View(文档视图)的应用程序的结构
开发人员可以将数据保存在Document类的对象上
而在屏幕的显示的数据由View类的对象来负责。
通过MFC的支持Visual C++也实现了面向对象领域的RTTI(RunTime Type Information 运行时类型识别)、Dynamic Creation(动态创建)、(Persitence)永久保存机制,
同时他也实现了Windows下的Message Mapping(消息映射)和Command Routing(命令传递)
通过MFC的Cdatabase和Crecordset类Visual C++可以实现数据库的应用
通过ChtmlStream、CHttpFilter、CHttpFilterContext、ChttpServer等ISAPI(Internet Server API)可以很好的支持Internet上的http协议相关的操作。
由于MFC涉及到应用程序开发的各个领域,
其Visual C++成为倍受欢迎的开发工具。
1.4.2 网络编程
80年代初,美国政府的高级研究工程机构(ARPA)给加利福尼亚大Berkeley分校提供了资金,
让他们在UNIX操作系统下实现TCP/IP协议。
在这个项目中研究人员为TCP/IP网络通信开发了一个API(应用程序接口)。
这个API称为Socket接口(套接字)。
今天,SOCKET接口是TCP/IP
上一篇:
基于VC的局域网聊天室任务书和开题报告
下一篇:
近三年来思想工作小结(德能勤绩廉)