1. 选题背景
随着社会技术的飞速发展,传统的通讯方式已经无法完全满足现代社会人们的需求了。随着网络的推广与普及,通过网络的通讯方式开始兴起,网络聊天越来越被各种网民所青睐。网络通讯方式相较于传统的通讯方式有着许许多多的优点:通讯花费较少、可以实时通讯、交互方式多样等。正是因为网络通讯技术的这些优点让它飞快的被广大用户所认可。随着网络通讯的不断的发展,时至今日,它已经成为了人们生活之中不可或缺的一部分。
网络是一个虚拟的、开放的世界,这是网络的魅力所在,但与此同时这个特点也让它变得不安全。早期的网络中的信息对于每个人都是可见的,这让用户的信息安全无法得到保障。现在,网络安全问题已经引起了所有人的关注,是一个世界级的问题。在网络安全问题中很重要的一个环节就是通讯安全问题,当下大部分非常流行的网络聊天程序对于用户的通讯安全都未作相应的保障,这让用户的信息有可能在传输过程中被盗取或修改。
1.1. 国内外研究近况
1.2. 技术背景
1.3.1. Java语言
Java是一门功能异常强大又简单易用的编程语言,它继C++语言后出现的又一门面向对象编程语言,它不但拥有C++在各方面的优点,而且还做出了相应的优化,剔除了C++中较难使用的多继承和指针。Java语言深受程序员的喜爱,因为允许程序员以优雅的思文方式进行复杂的编程。
Java具有简单性、多线索性、面向对象、可移植性等一系列的特点[4],这让它深受程序员的喜爱,也使它成为了现在使用最广的语言。
1.3.2. TCP/IP
TCP/IP是Transmission Control Protocol/Internet Protocol的简写,是现代网络连接的基础。TCP和IP两者并不是同一层的协议,前者在传输层,后者在网络层,两者相互协作完成数据传输[5]。TCP/IP国际认定的是数据在网络中传输的标准[6],它定义了所有设备应该如何连入国际互联网络。IP负责给连入网络的设备标明一个地址作为标识,为数据传输指明方向;TCP则为IP的传输提供保障,对出错的数据进行重新传输,为数据能完整无误的发送到目标设备保驾护航。
1.3.3. Socket编程
Socket指的是两个程序通过一个双向的连接进行数据交互,这个可以进行双向通信的连接就是一个Socket。Java中的Socket编程的服务提供者就像是一个房间,房间里有很多的座位,每一个客户端都是一个人,可以选择进入这个房间里的一个座位上坐下来。Socket本质上就是对TCP/IP进行一定程度上的封装[7],让开发者能在不关注TCP/IP底层如何实现的情况下完成两个程序的通信。
1.3.4. C/S模式
C/S(Client/Server)模式也就是客户/服务器的模式。客户端为开发好的与服务端对应的软件,一般情况下需要安装后才能使用。服务器一般使用SQL Server、ORACLE等大型数据库系统来存储用户数据[8]。
C/S模式虽然没有B/S(Browser/Server)模式的重用性强、可以面向大量用户等优点,但C/S模式能对用户信息进行较强的控制和管理,安全性较强。C/S较为适合出于安全考虑的局域网内使用,而B/S模式则更适合广域网面向广大未知使用人员。C/S模式的软件进行系统文护、软件更新时,由于软件的整体性较强,所以进行部分更新时可能会影响全局,需要对软件整体进行改动[9]。C/S模式的软件还有一个较难处理的问题是,不同操作系统之间是否兼容,是否支持需要的基础软件。
1.3.5. NIO技术
Java平台提供的传统I/O是阻塞式的,所以服务端对于每一个连接上来的客户端都要启用一个线程来管理。每次服务端与客户端进行信息交流时,都需要进行线程切换,虽然线程切换所需时间不算太长,但随着计算机计算能力的增强,线程切换所用的时间大大的超过了CPU对事务进行处理的时间,所以传统的I/O已经成为了阻碍服务端性能提升的一个巨大障碍。 JAVA+SQLSERVER加密聊天软件的设计+源代码(2):http://www.751com.cn/jisuanji/lunwen_32166.html