基于SWING的局域网通信系统设计与实现

2013-12-29 00:00:00薛忠俊
电脑知识与技术 2013年4期

摘要:现代企业在构建高效网络互连的时候,也更注重网络的安全,所以在企业的内部网实现脱离Internet的内网通信系统也是很有必要的。该系统实现了如下的功能:利用SWING技术和AWT技术实现系统的图形化界面。在用户列表面板上,提供了好友列表的显示和用户功能菜单;系统功能面板上提供了界面选择功能和IP范围搜索好友和自动添加好友功能;在系统设置面板上,主要提供了公共程序路径的更改和搜索好友的IP范围的设置。本系统采用JAVA语言开发,使用纯JAVA的内存数据库Derby作为系统后台和Eclipse开发环境,旨在提供一个功能全面、即时、高效的局域网通信系统。

关键词: SWING;UDP;JAVA ;SOCKET;多线程;FTP

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)04-0746-03

随着全球信息化进程的飞速发展,网络也在飞速发展,计算机通信已经成为这一时代的标志和基础设施。局域网在企业的发展中承担着很重要的作用。在内部局域网的帮助下,企业内部的信息传递流程得以简化,信息交换的速度得到了提高,工作效率也得到了进一步提升。

可与企业内部网发展不能对应的是很多网络办公管理系统缺少局域网版本,正是基于此原因考虑设计一个局域网的通信系统系统。该通信系统是基于SWING开发包设计,是以抽象串口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。用少量的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面;此外Swing还提供了事件处理机制,让用户界面更加生动化。而通信功能主要利用了Socket编程技术,这是一种可以架构在企业局域网上实现快速高效的通信系统协议技术,这种通用的通信技术,无须更改企业内部网络原先结构,可以有效的进行网络负载均衡的使用,解决网络用户的各种使用需求,从而大幅度提高局域网的使用效率。

1 系统分析及设计

根据系统设计要求,需要实现如下的功能:1) 采用Swing程序包提供良好用户图形界面,并配有相应的事件处理。2) 每台计算机端既是客户端又是服务器端,两端之间利用Socket编程技术和UDP协议通过IP地址和PORT提供不可靠非连接通信。 3) 采用JAVA多线程技术,多个线程进行端口的监听等。4) 配置ftp服务器,采用Process和Runtime调用Windows的dos命令来实现客户端和服务器端文件共享。

基于以上功能的实现,设计了局域网通信系统的基本模型,该系统模型主要由两大部分构成。一部分是用Swing开发工具包来编写搭建人性化的外观用户界面。第二部分,主要利用Socket和ftp相关知识来实现局域网通信功能。系统的组织架构如图1所示。

3 关键技术分析及系统实现

3.1 Swing简介

在该设计中主要是采用Swing技术包进行相应的系统开发,Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。一个Java GUI[6]通常由顶层容器、中间容器以及多个原子组件组成。而每个原子组件或容器都可能触发相应事件的产生。Swing的实现是一个小型GUI框架,该框架无基本平台依赖性。

Swing采用了一种MVC的设计范式,即"模型-视图-控制"(Model-View-

Controller),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。Swing组件的体系结构如图2所示。

3.2 系统的实现

做好基础准备工作之后,还要准备如下数据库,表1是用户表的数据库设计,表2是该应用工具在桌面的显示设置参数,具体设计如表1及表2所示,该系统设计主方法如图3所示。

[用户ip地址\&计算主机名\&用户名\&用户提示信息\&用户头像\&ip \&host\&name\&tooltip\&icon\&varchar(16)\&varchar(30)\&varchar(20)\&varchar(50)\&varchar(50)\&primary key\&\&\&\&\&\&\&\&\&根据ip地址随机获取\&]

表2 GUI视图在桌面上的显示位置与大小数据库设计

[X轴坐标\&Y轴坐标\&用户界面长\&用户界面高\&xLocation\&yLocation\&width \&height\∫\∫\∫\∫\&]

系统功能介绍如下:

通过SystemTrayInitial()方法初始化系统栏,此方法内设置了系统图标,系统提示信息,以及系统栏菜单(退出、打开、访问服务器等功能)。

用Swing组件实现用户主界面的搭建主要是在EQ的构造函数中实现的。用户主界面主要用三大模块实现的,界面最上头是本地用户信息(头像和用户名)和系统公告栏,第三大模块是用tabbedPane分页组件实现的,又分为用户列表、系统操作、系统设置三大面板。

4 总结

该系统的设计提供了一个比较完善的解决方案进行内部资料共享、视频会议的基本方案,可以方便的实时进行交流各类会议,而不担心商业机密被窃取的问题,具有相当的适用性,同时也为企业的信息化及以后的继续深入研究提供了一个基础。但是系统中类的设计还不是最优,某些方法的行数过多,需要进一步重构,使得代码简洁,提高代码简洁性。通过提炼方法、提炼类等重构技术可以让系统结构更清晰、更易于扩展。

参考文献:

[1] 哈诺德.Java网络编程[M].朱涛江,林剑,译.3版.北京:中国电力出版社,2005:161-192.

[2] Kenneth L,Calvert Michael J,Donahoo.Java TCP/IP Socket编程[M].周恒民,译.北京:机械工业出版社,2009:5-29.

[3] David M Geary.Java 2 图形设计卷Ⅱ:SWING Graphics Java 2 Mastering the JFC Volume Ⅱ[M].李建森,蒋欣军,龚尧莞.译.3版.北京:机械工业出版社,2000:11-15.

[4] 杜佳荣,马建红,滕振. Java网络编程与实践[M]. 北京:清华大学出版社,2008:313-360.

[5] Bruce Eckel.Thinking.In.Java[M].4th ed.CHS.美国.Prentice Hall PTR,2006:57-63.

[6] 吕校春,李玲莉.基于Swing的Java GUI组件开发[J].机械工程师,2008(5):129-131.

[7] 周小松,朱雄军.基于UDP 协议的Socket 网络编程模式的实现[J].武汉职业技术学院学报,2007(1):1-3.