基于Java的局域网在线翻译聊天系统
2019-09-16荣先钊林宇驰张上
荣先钊 林宇驰 张上
摘要:随着互联网的发展,人们对网络的依赖越来越大,越来越离不开网络,网络聊天工具作为一种交流工具,已经受到广大网民的青昧。当前环境下,较多公司限制其员工在办公时使用外网,而局域网开始进入大众视野。本文通过使用JavaSE编写GUl聊天界面,通过Tomcat服务器实现网页用户在线注册,采用Socket、Ajax等技术实现多人聊天室、点对点及时聊天和在线翻译等功能。
关键字:Java SE Socket Ajax聊天系统
引言
随着全球信息化的发展,局域网由于其高效、安全和快速处理事务的優点,开始进入网络市场。该系统的目标是建立一个即时翻译的局域网聊天系统,该系统通过MysoL,Tomcat服务器以及百度翻译的API从而实现多种语言之间即时翻译的快速通信,为使用此软件的用户带来很大的便利和提高沟通水平。系统由服务器端与客户端组成,服务器端控制客户端之间的数据传输。客户端的所有信息发往服务器端,再由服务器进行消息的分析处理并做出相应的控制,服务器端是所有信息的中心。服务器端可以查看所有用户的聊天记录,监控所有用户的状态,发出用户上线、离线提示等公告,客户端则提供接收公告的功能。
1系统分析
本系统是一个局域网的即时翻译聊天系统,主要实现在线翻译的局域网聊天,其中包括了用户注册用户登陆,用户聊天,在线翻译等功能。该系统使用时,首先需要用户通过网页进行注册user和password,数据提交至数据库后,客户端登陆需要输入user和password,此时服务端启动,客户端连接。当要发送消息时,可以点击翻译即可将中文翻译成英文,从而达到快速交流的目的。
(1)用户注册
使用系统之前,如果该用户未注册,必须首先进行注册后使用,注册是在HTML页面进行注册http://localhost:8080/reg。注册成功后,提交数据会进入到数据库。
(2)用户登陆
如果用户已经有ID,登陆成功后方可使用系统,普通用户登陆可使用聊天和即时翻译等功能。
(3)在线翻译
该系统带有即时翻译的功能,使用的是百度翻译API,默认支持中英翻译。
2关键技术
(1)多线程处理
服务器:聊天系统有一个聊天控制中心界面,可以显示所有的在线成员,与每一个客户端链接的都对应一个处理线程,用来处理客户端的请求。为了防止数据库的临界资源被脏读、重复度等错误操作,采用并发控制为每个客户端的资源操作对象设置“锁”标记,从而保证在同一时刻,只有一个客户端能对该资源进行写操作,极大程度保证的数据的正确性。
客户端:每个客户端都对应一个线程,且在服务端都有相应的ID编号,客户端与客户端之间可以建立连接,用来传输消息或数据文件。
(2) Ajax
Ajax(Asynchronous Javascript And XML)即 异 步Javascript与XML,其并非是一个新技术,而实把原有的技术整合到一起。
当我们输入用户名时,往往需要检测该用户名的合法性,此时刷新整个页面显得庞大,用户体验并不是很好,为了解决局部刷新为题,而其他地方保持不变,只刷新某些地方。常用的请求方式有Get/Post,使用方法通常为以先步骤:
1).创建XmlHttpRequest对象
这部分创建的对象,由于需要针对不同的浏览器,需要做出判断,所以不用直接写,可重复使用。
2).发送请求
request.open(“GET”,”/AjaxAndjQuery/demoServlet017n ame=enc&password=123'”,true); request.send();
注:request对象通过第一步的XmlHttpRequest得到。
3).响应服务器发送过来的数据
(3)在线翻译
在实际使用中,可能会遇到不同语言的人之间的沟通,该系统通过使用百度提供的API接口,调用服务,可支持多种语言之间的转换。 3系统设计 (1)客户端登录UML用例图 用例是一种描述系统需求的方法,在该系统的使用中,用户的注册在Tomcat端,登录在桌面客户端,各种类型的开发活动包括项目管理、分析设计、测试、实现等都是以系统用例为主要输人工件,用例模型奠定了整个系统软件开发的基础下面就来进行用例建模。
下面就是一个登陆用例模型:
在上面图这个简单用例中,参与者(Actor)是系统使用用户,在这里只有一个简单的用例(Use Case),即登录,他之间通过通讯关联(Communication Association)联系起来构成一个完整的用例模型。
4结语
目前的局域网聊天的软件种类很多,几乎能满足各行各业的需求,但是技术不断革新,依然存在许多可以改进的地方。从运行环境来看,现在的局域网聊天软件大多只针对一个系统,而采用JavaSE开发的局域网聊天系统则实现了跨平台运行,实现了跨平台的局域网通信。又比如现在翻译软件兴起,但是往往都是在聊天的同时去copy翻译的内容发送,极大程度上影响用户体验,而该系统将翻译功能嵌入在聊天软件之中,使其功能得到了很大的提升。
参考文献
[1]李淑梅,王志彬.Socket在局域网聊天系统中的应用[J].吉林师范大学学报:自然科学版,2014,35(1):71-73.
[2]杜金祥,杜宇轩,基于Linux的局域网聊天系统设计[J].山西电子技术,2014(1):6769.
[3]汪桃华,宋兵,万方,基于Java的局域网聊天系统[J].内江师范学院学报,2008,23(B08): 242245.