《Java语言与其开发技术发展趋势研究.docx》由会员分享,可在线阅读,更多相关《Java语言与其开发技术发展趋势研究.docx(6页珍藏版)》请在三一办公上搜索。
1、Java语言与其开发技术发展趋势研究Java语言与其开发技术发展趋势研究 摘要:目前即时通讯工具在互联网上使用广泛,便利、易用受欢迎,结合Java语言在跨平台、安全性、多线程、网络Socket编程等方面的优点以及我们公安系统的安全性可靠性和可维护性等多方面考虑,该文将就一系列的问题设计了一个基于Java虚拟机,可跨平台特性的即时通讯工具。文中对该即时通讯系统的体系结构、构成模块进行了分析介绍,给出了该系统的需求背景、概要设计、详细设计以及该系统的大概实现过程。实验证明,该即时通讯系统简洁实用并能够很好的支持在多个操作系统平台运行,真正实现Java的跨平台的特性,体现java的魅力所在。 关键字
2、:java Socket 多线程 即时通讯 在当今网络化、信息化以及办事效率的成倍提高的社会,即时通讯已经是一个无法或缺的,让使用者在网络上进行即时交流信息的实时通讯服务的网络工具。即时通讯服务的主要功能在与提供了文字、图片以及视频的即时通讯,只要通讯双方同时在线,就能像多媒体电话一样,传送文字、档案、声音、影像给对方而不用考虑距离。目前在互联网上受欢迎的即时通讯软件包括QQ、MSN Messenger、Gtalk、百度HI、Jabber、ICQ等。随着互联网的发展与普及,网上即时通讯联络已经成为广大网民不可或缺的服务,同时随着我们公安系统的不断高速发展以及行动的需求,我们公安系统也应该也必须
3、拥有一套属于自己的内部的即时聊天工具,以提高公安系统办公的高效性以及行动的保密性与及时性。作为一款即时通讯工具的雏形,该系统已经能够为广大公安干警提供基本的即时通信交流以及语音通讯服务,它是利用当今最为流行的java语言来编写的,该系统本身固有的优点,比如跨平台运行,强大的网络功能以及良好的数据库接口支持在该系统中也将得到体现,同时开发过程中的很多步骤和开发出来的代码都涉及到Java语言的关键的或者具有特色的技术,比如Java的网络编程,Swing界面程序设计以及UDP打洞等等技术。 一、 系统的设计 本系统采用的是基于C/S模式的即时通讯服务。用户可以在公安网上下载到通信客户端软件,通过客户
4、端软件使用专用的公安网络连接登陆到服务器,然后服务器根据客户端的服务指令将客户端之间的文本聊天信息进行转发,即一方先将消息通过TCP连接发送至服务器,服务器再通过TCP连接将消息转发到另一方,客户端与服务器的通信内容将使用XML进行封装,以保证进行网络通信时的安全性问题。 由于通过NAPT上网的特点决定了只能由NAPT内的计算机主动向NAPT外部的主机发起连接,这就意味着内网的系统用户无法主动发起语音通讯请求。如果两位用户都处在不同的内网,语音通讯便无法进行,为了解决这个问题,在数据传输上采用UDP打洞技术来对NAPT进行穿透。由服务器协助两个客户端建立UDP直连,语音数据将采用UDP协议使用
5、点到点方式传输,而用户对语音聊天的控制信息,如请求通讯、接受/拒绝接听、挂断通讯等同样由服务器中转来实现。 根据系统的要求,客户端应具备以下几个功能:即时通信、语音和视频通信、好友管理、账户管理等。在客户端类设计上,设计好客户端的主类,其中定义了实现客户端主要功能的一些方法。它包括几个重要的内部类:ReceiveThread、ChatPane、UserInfoFrame、UserInfoBean等等。 内部类ReceiveThread实现服务器端所有消息的接收和解析,应用JAVA多线程技术,对来自服务器的消息单独开一个线程来监听,发送消息通过类SendThread建立到服务器的单独线程。Cha
6、tPane类为用户聊天面板,用户与每一个好友聊天时都会生成一个ChatPane对象,所有的ChatPane对象由系统中唯一的一个ChatFrame窗口对象管理。而用户个人信息管理用一个窗口类UserIn-foFrame类来实现,包括个人信息的修改,好友的增删等等,每个UserInfoFrame对象关联一个UserInfoBean对象。UserInfoBean类为系统中非常重要的一个类,它保存用户的所有个人资料以及此用户发送的聊天信息等内容。每段聊天信息由一个Mes-sageBean对象保存。音频捕获和音频回放功能通过com.javahi.client.audioprocess包中有两个类:Au
7、dioCapture和Au-dioPlayback来分别实现。这样就能够完成整个客户端的用户的需求,同样满足了公安系统中的简单性、实用性、安全性等特性的需求从而可以大大提高我们公安系统的办事效率,实现为人们服务的宗旨。 服务器端要求为客户端提供聊天服务管理,建立语音通讯UDP直连中介服务和注册服务,以及简单的数据库管理和参数设置功能。这些功能的实现与完善可以更好的为公安系统的即时通信服务而服务。 在服务器端类设计上,定义了JavaHiServer类为服务器端主类,此类会从硬盘上读取已保存的服务器相关参数,并初始化监控台界面ServerFrame对象,ServerFrame类包括多个管理面板类,
8、在聊天服务管理面板类ChatServerPane中通过两个重要的内部类来实现数据通信:ServiceThread和AudioSer-viceThread.ServerThread为监听客户端登陆连接的线程类,每当一个客户端登陆服务器的时候便生成一个ServerThread线程对象来管理与客户端的TCP连接,接收来自客户端的消息,解析消息并调用相应的方法进行处理,并将处理结果返回给客户端。而AudioServiceThread是服务器为客户端提供语音通讯UDP直连服务的线程,它接收来自客户端发送的UDP包,并提取出客端的外网IP和Port作相应记录。这样便可以很好的记录和监控公安网络的聊天情况,
9、从而更好的体现安全性的服务。另外在系统的聊天记录中还包含敏感字监控程序,对所有人的聊天记录进行监控,当发现敏感词汇出现,并且所属的用户或用户组没有开放关键字时,系统服务会提示用户不可以使用,当用户不听从警告继续使用时,系统将会自动结束该用户的聊天进程,并将所有的聊天记录保存,并作相应的安全处理,同时将警告发送至管理员以及发生警告的用户聊天记录。当管理员授权后便可继续进行聊天,并且不再进行敏感字的警告。 该即时通讯系统以MySQL作为后台数据库,建立名为javahi的数据库,共两个表,user表和friend表,user表为用户的基本信息表,包括用户名,昵称,密码等,friend表为用户的好友表
10、。包括自己的用户名和好友用户名字段。同时将所有的用户的聊天记录以文本的形式存入硬盘,一定级别的聊天记录应当进行相应的加密处理。数据库的编码采用的是UTF-8编码。 二、 系统实现 由于客户端实现的各部分功能主要分为事件的响应,消息的组织,发送,解析等过程,本文只选取部分功能模块作详细描述,其它模块的实现与此类似。 文本消息的传送,用户填写文本信息,并点击按钮发送,客户端的发送事件被启动,服务器接收消息后首先进行关键字的检测,当检测无关键字时再进行目标用户是否在线检查,如果目标用户不在线,则将发送失败信息返回给发送者,如果在线则将信息转发给目标用户,目标用户接收消息后查看发送方是否在黑名单中,如
11、果不在黑名单中则提示用户有新消息到来,若在黑名单当中则直接屏蔽该用户的信息。 语音通信的实现,语音通讯的两个客户端之间直接利用UDP直连以实现点对点通信的过程如下: 语音请求方向目标方发送语音请求后,经过以下步骤: 1) 发送一个UDP包到服务器,里面包含源用户名和目标用户名; 2)利用与服务器的TCP连接发送语音请求到服务器,内容包括目标用户名,再由服务器转发给目标用户; 3)启动一个计时器每隔三秒循环一次,若没有收到结果则重复上面两个步骤直到用户取消请求或收到语音请求结果。服务器收到UDP包后提取出包的源IP和PORT并作相应的记录,收到语音请求后检查目标用户是否在线,如果不在线则返回给请
12、求的用户失败消息,如果在线则检查发送用户的记录中有无与目标用户相关的IP和PORT,如果无则不做任何事情,如果有则将语音请求加上先前记录的与目标用户相关的源用户的外网IP和PORT一起转发给目标用户客户端,目标用户作出“拒绝”或者“接受”操作,选择拒绝请求则返回给发送用户相关信息,如果接受请求则同样做与开始发送用户相同的三个步骤,并发送一个不带任何内容的UDP包到开始记录过的源用户的IP和PORT,直到两用户建立UDP直连时为止。 三、总结 本系统设计实现了即时通讯最基本和最核心的功能,如文本信息交流和语音通讯,运行稳定,能够确保系统的安全性与稳定性为公安内部人员提供一个切实可行的交流平台,同
13、时也保证了系统内部机密等级的保障,避免机密文件内容泄露。本系统使用的是Java语言编写,它的跨平台性可以使该系统应用在window和linux操作系统中。后期将在此内核基础上进行功能拓展,离线消息的实现,添加丰富的用户在线状态,文件传输功能等等,使其成为一个真正完善的,强大的能够为我们公安系统内部人与服务好的即时通讯系统。 三、参考文献: 张白一,崔尚森.面向对象程序设计M.西安:西安电子科技大学出版社,2003. 陈刚.Eclipse从入门到精通M.北京:清华大学出版社,2007. 吴亚峰,纪超.Java SE 6.0编程指南M.北京:人民邮电出版社,2007. Eckel B.Thinking in JavaM.America:Pearson Education,2003 Darwin I F.Java Cook BookM.America:OReilly,2004.