[摘 要]即时通信能够即时发送和接收互联网消息,而TCP提供的是面向连接,可靠的数据传输服务。基于TCP的即时通信利用SOCKET套接字进行数据通讯,程序分为服务器端和客户端两部分。本文介绍了课题的设计背景、TCP协议和SOCKET的工作原理等,着重分析设计说明了基于TCP的即时通信程序的总体设计架构、各模块设计与实现过程,对程序中用到的主要的类及数据结构进行了详细深入的描述。并对设计中涉及到的主要函数的代码实现及程序的调试与测试过程做了详细的分析和介绍。通过本文的阐述,能够让我们对基于TCP协议的即时通信程序的工作原理和设计与实现过程有更充分的认知。
[关键词]即时通信 TCP协议
伴随着互联网的快速发展,人类社会步入了信息化、网络化时代。在信息社会,互联网为人们提供了巨大的便利,通过互联网人们可以方便的进行资源共享和随时、随地、随心的进行相互通信。即时通讯是互联网上最快、最便捷的信息传递方式,通过即时通讯人们可以打破地界的限制,随意沟通交流,而且最重要的是大量节约了成本。
21世纪的今天,人们的生活已经发生了翻天覆地的变化,互联网这个曾经的新兴事物也以它的方便快捷走进了千家万户。随着网络持续快速增长,网络规模迅速扩大,网络技术不断推陈出新,各种网络功能也日趋丰富。电子***务、远程教育、远程医疗、电子商务、移动信息、***数字内容等网上各类功能日新月异,信息交流更加便捷高效。可以说,人们的工作、学习、生活都已经离不开互联网了。而互联网在促进经济发展、推动社会进步和提高人民生活质量方面也发挥着越来越重要的作用。互联网是人类社会有史以来第一个世界性的***书馆和第一个全球性论坛。任何人,无论来自世界的任何地方,在任何时候,他(她)都可以参加,互联网永远不会关闭。而且,无论你是谁,你永远是受欢迎的。你不会由于不同的肤色、不同的穿戴、不同的而被排挤在外。在当今的世界里,唯一没有国界、没有歧视、没有***治的生活属于互联网。通过网络信息的传播,全世界任何人,不分国籍、种族、性别、年龄、贫富,互相传送经验与知识,发表意见和见解。
即时通信(IM)是指能够即时发送和接收互联网消息等的业务。即时通信作为中国互联网市场已经成为最普及的应用之一,即时通信的未来技术发展和应用创新将受到众多新技术趋势的影响,呈现越来越动态的变化,即时通信和社会化网络、统一通信、***协同三大技术热点的关系将越来越密切,已经构成重要的融合发展的趋势。
(1)社会化网络——社会化网络快速发展和即时通信的普及相互影响,即时通信在中国成为社会化网络的重要入口。例如,腾讯,在基于即时通信的基础上,构建了活跃用户规模过亿的大型社区。
(2)统一通信——即时通信越来越具备成为统一通信关键元素的特质。统一通信建立统一的客户界面和基础平台的理念在企业广受欢迎,成为电信市场发展的大势所趋。如果希望部署用户体验良好的统一通信平台,就必须重视提供灵活的即时通信功能。
(3)***协同——***协同也将吸收更多的即时通信发展的理念,呈现动态的变化。今天的***协同更加重视来自于每一个用户的参与程度,如何让员工和客户通过合适的***协同工具表达自己的意见和想法越来越重要。
目前比较流行的即时通信软件多数先天 “不足”,比如QQ、飞鸽等都是基于UDP协议的即时通信软件,而UDP属于“面向无连接,不可靠传输”,由于UDP在传送数据过程中没有建立连接,因此它只负责接收和传送由上层协议传递的信息,本身不做任何的检查、修改与应答,也因为它的不可靠性,使得它不能保证数据报能安全无误地到达目的地。这样用户在使用这些即时通信软件时就容易出现不知情的突然中断以及信息丢失等现象,给用户带来不必要的麻烦和困扰。本课题的设计实现就是基于这种情况,针对目前基于UDP的即时通信软件的先天不可靠性,设计了一种基于TCP协议的即时通信软件,由于TCP协议在网络通信传输机制中属于“面向连接,可靠传输”的类型,面向连接的传输意味着在进行通信以前,需要在两个系统之间建立逻辑连接,在每个数据传输的过程中都需要进行应答以保证数据包的完整。
基于局域网的即时通信工具,如今一般采用UDP或者 TCP协议体系来实现,开发技术已经比较成熟,通过这些开发的产品工具统统都实现了广域网上的即时通信这些软件,在使用方面各有特色,在实现方面也各有所长。即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。
参考文献:
[1] Douglas er ,《用TCP/IP进行网际互联(第四版)》 机械工业出版社,2001
[2]Ray Horak著,徐勇等译,通信系统与网络,电子工业出版社,2001年3月
[3]马博. 即时通信市场:“运营商系”挑战“互联网系”. 中国电子报 , 2008
[4]宋国龙,浅谈即时通讯软件的开发技术 [J],山西电子技术,2003年02期
[5]王晋海,即时通信系统的研究与实现 [D],暨南大学,2004年
[6]马丹,即时通信系统终端的设计与实现 [D],电子科技大学,2005年