5.7.2聊天记录功能的实现 .............................................................................................. 46 5.7.3 服务端线程的实现 ............................................................................................... 48 5.8 用户界面的设计 ......................................................................................................... 48 5.8.1 登陆界面 ............................................................................................................... 48 5.8.2 好友列表 ............................................................................................................... 49 5.8.3聊天界面 .................................................................................................................. 50 结 论 ........................................................................................................................................ 51 致 谢 ........................................................................................................................................ 52 参考文献 .................................................................................................................................. 53 附录A 英文原文 .................................................................................................................. 55 附录B 汉语翻译 .................................................................................................................. 62
1 绪 论
1.1 即时通倍系统概述和选题背景
即时通信(Instant Messaging,缩写为IM),是以万维网为基础,实现通信双方语言、文件、语音等实时信息传送的通信过程[1]。与Email等传统的通信方式相比,即时通信具有实时、方便、快捷、廉价、交互性好等优点。
当今社会是一个信息化的社会,个人化的交流要求越来越高。同时,随着多媒体计算机技术和通信技术的迅猛发展,人们已经不能满足于简单的话音和文字通信,希望集语音、文字和图像于一体的多媒体通信[2-4]。
即时通信技术自从1996年诞生以来,经历了 10余年的发展,已经从最初的简单的文字聊天通信工具,发展成为一个集通信和娱乐统一于一体的广泛平台。在这个平台上,除了可以进行最基本的实时通信(包括文字通信,还有视频通信和语音通信)之外,还可以进行游戏的娱乐项目,甚至可以进入一个虚拟的世界、一个虚拟的现实。
现在著名的即时通信软件有QQ,Google Talk, Yahoo Messager,微信,飞信,Line, Skype等,这些即时通信系统在提供即时通信基本功能的基础上,各自有自己的特点。如飞信可以免费发送短信到好友的手机;Google talk的聊天记录是以邮件的形式保存在Google mail的邮箱里面[5]。而且除了实现PC与PC、手机与手机的通讯之外,还可以实现手机与PC之间的通信。
但是这些优秀的即时通讯软件的使用必须有一个前提条件:必须保证因特网的畅通。如果因特网不畅通,那么这些软件都不能正常的使用,而且很多的即时通讯软件只能在Windows平台下运行,不能在Linux、Mac OS上跨平台运行,除了个别的几个工具之外,也不能再移动平台上运行。
随着时代的发展,互联网时代的到来,人们的沟通交流方式也变得越来越丰富,如Email、BBS、即时通讯软件、微博、移动终端等。但是就在个人通信方式方兴未艾的时候,企事业内部交流通信却显得比较的尴尬,很多的企事业单位内部之间的工作沟通使用的市场上现有的个人即时通讯工具,部门同事之间相互加为好友,部门与部门之间建立一个又一个的群,这种方式貌似很方便同事之间的工作沟通。本人的QQ就加入了十几个群,个人的各种好友有近百人,我的同学中有的加入几十个群,各种好友有数百人之多。每天一打开通信软件,就会弹出各个群的信息,很多好友的信息,每天的交流沟通占去了很多很多的时间,工作效率低下。 发出一款能在企事业单位内部使用的、进
1
行工作沟通交流的即时通讯软件,使得我们能在上班的时候免受工作之外的各种信息的干扰,提高我们的沟通质量,提升人们的沟通体验,就显得非常必要。而且人们也越来越关注一个问题,那就是安全保密。如何能在因特网不畅通的时候进行实时通信,如何保证个人信息的安全性,如何保证企业单位内部信息安全性,如何使得软件能够跨平台(不仅是PC平台之间,也包括PC和移动终端之间)使用,正是本论文的研究所在。
1.2选题的目的和研究意义
现代社会的信息越来越发达,生活节奏也越来越快,于是新型的省时,省力而又高速便捷美观的即时通讯工具迅速发展起来。例如手机即时通讯和PC即时通讯,手机即时通讯的代表就是短信;而网站、视频即时通讯有:米聊、YY语音、QQ、MSN、百度hi、新浪UC、阿里旺旺、网易泡泡、网易CC、盛大ET、移动飞信、企业飞信等应用形式。尽管有这么多的通讯形式,但并不是都很完美,每种形式各有优劣。所以期待能用Java语言编程改善和解决一些问题,进一步提升即时通讯的功用。
在信息化时代,作为人们使用最多的,与日常生活最为密切的即时通讯工具,就成了人与人之间进行信息交流,感情传递的主要方式。然而,以传统的QQ为代表的即时通讯工具过多的侧重于娱乐性,不能够适用于高效严谨的办公环境,它不仅影响员工的工作效率,而且使得企业的内部的资源信息存在着较大的安全隐患。因此,开发出一款能够适应办公环境,企业急需,方便高效的,又安全可靠的即时通讯工具就显得比较的紧迫,比较具有现实意义。
通过研究开发出一款适合于企事业单位使用的即时通讯软件。本系统具有如下的特点:
(1)由于减少了工作之外的因素的干扰,工作效率大大的提高,沟通体验得到了提升。
(2)能够很快捷方便的获知对方是否在线。
(3)由于交流通信使用的内部的即时通讯软件,所以能够很好的保护信息的安全。 (4)系统应用之后,使得沟通的渠道通畅,交流实现扁平化,避免了过去传达汇报的传统交流沟通方式,使得沟通交流更加的有效。
(5)由于采用C/S架构,所有的信息都是通过服务器转发,很方便的查询历史记录。 本系统釆用模块化程序设计,系统具有良好可扩充性,可以在后续的开发中添加移动通信模块、电子邮件模块和视频通信模块,为系统的继续完善奠定了良好的基础。
2
1.3本论文的研究方法
本文的设计目标是一个实用的面向企业的局域网即时通讯软件。首先对系统的可行性进行分析,确定了系统开发可行。然后经过需求分析确定了系统最终要实现的功能,确定了本系统所使用的后台数据库系统为MySQL,并对系统中的数据库进行了设计。
系统釆用目前最为流行的开发工具Java语言进行开发。其中,网络通信部分采用流行的TCP/IP协议,程序采用典型的C/S(客户端/服务器)模式,这是传统的软件系统体系结构,能够将任务合理的分配的Client端(即客户端)和Server端(即服务器端),可以大大的降低系统的通讯开销,可以充分的利用C/S两端的硬件环境的优势。程序采用的是使用Socket套接字进行网络通讯模块设计,界面部分采用Swing轻量级控件,能够是系统的控件在各个平台上具有完全相同的界面,达到了很好的互通性。系统釆用模块化设计,釆用自顶向下的开发模式。开发过程中先根据功能将系统划分成不同的模块,然后将各个模块继续细化,划分成更小的子模块。模块化的好处是便于开发,便于调试,便于系统的后期维护,并为后续的开发预留接口,使得系统具有良好的可扩充性。
本文最终设计出一个简易而实用的网络即时通讯软件,模式又分为服务器和客户端两部分:客户端通过输入服务器端的IP地址与服务器建立通信。考虑到要可以在局域网中应用,本系统使用的是第二种方法,经过设置,在局域网或internet上都可以使用。
1.4本论文的内容
第一章绪论。系统的介绍了课题的选题背景,课题研究的意义,所釆用的研究方法以及本论文的结构。
第二章主要内容介绍。详细的介绍了本系统所涉及到的即时通信的原理。包括即时通信系统的定义TCP/IP协议。介绍了本系统所涉及的JAVA编程技术。包括套接字编程,多线程编程技术,Swing轻量级图形用户界面开发,系统开发的C/S架构等。介绍了数据库操作的MySQL语言。
第三章系统分析。首先从技术可行性、经济可行性和操作可行性方面讨论了系统的可行性。然后通过需求分析确定了系统所要实现的基本功能。
第四章系统设计。确定了系统的总体框架,服务器端和客户端的详细功能和界面,并且确定了系统的数据库。
3

