欢迎访问有用文档网!

当前位置: 有用文档网 > 作文大全 >

基于Java的校园局域网通信系统的设计与实现

| 浏览次数:

摘要:针对流行通讯软件在办公、教学管理应用过程中存在的问题,本文设计了一个基于Java的校园网通信系统,对系统进行了整体设计和实现。该系统主要通过Java的Socket网络编程技术实现用户间的网络通信。系统具有界面简洁、运行速度快、安全稳定等特点,有助于解决校园局域网内用户间的通信问题。

关键词:Java;多线程;UDP;网络通信

中图分类号:T393 文献标识码:A 文章编号:1673-8454(2012)03-0040-03

一、引言

目前流行的网络通信平台主要有QQ、飞信、MSN等。这些通讯软件都包含了发送消息、传递文件的功能,为用户之间的沟通、交流带来了方便,但这些软件设计的初衷并不是服务于办公和管理,应用于日常办公存在一定问题:(1)工作纪律问题:它们包含了丰富的娱乐、休闲及游戏功能,且很具有吸引力,用户在使用软件时难免不使用这些功能。很多公司也因此禁止员工上班时使用这类软件;(2)安全问题:有可能因为软件的漏洞遭遇网络攻击、病毒入侵等,给计算机的安全带来隐患。

经过近年来的教育信息化建设,各高校的校园网基础设施已非常完善,校园网基本覆盖校内的所有楼群。在此基础上。开发一个基于校园局域网的通讯系统,既能满足高校各级管理人员之间的办公需求。又能保证内部局域网的安全,同时对于提高现代化管理水平和工作效率。具有实际意义。

二、系统功能结构设计

Java语言已成为网络应用软件开发的主要工具,它具有跨平台、多线程、可移植、安全等特点。Java拥有一套强大的用于网络的API,它能够使用网络上的各种资源和数据,与服务器建立各种传输通道,将自己的数据传送到网络的各个地方。借助于Java的网络类和接口,本文设计开发了一个基于Java的校园局域网通信系统,校园局域网内的用户可以借助该系统相互发送消息、传送文件,系统能够根据IP自动搜索到校内的用户,可以相互添加为好友,对好友进行管理,同时用户还可以利用系统工具进行简单的系统设置。系统的功能结构如图1所示。

1.信息通信模块。信息通信是本系统的核心功能,使用基于UDP协议的数据报和套接字实现用户之间的消息传递;使用字节包装(解包)器和网络传输(接收)器实现用户间的文件传输;借助多线程技术,系统能够实现同时与多用户进行通信。

2.好友管理模块。具有添加好友(根据IP)、更改好友姓名、删除好友的功能,另外可以搜索局域网内的其他用户。系统会根据用户所设嚣的IP搜索范围搜索局域网内的用户。

3.系统工具模块。设置程序的相关参数,如程序升级路径、系统公告路径等;用户可以对系统界面进行个性化设置,选择不同的风格;“访问公共资源”用于实现访问内部公共服务器上资源的功能。“访问对方主机”用于两人聊天情况下对对方主机的访问和控制功能。

三、关键技术原理

基于Java的校园局域网通信系统的设计与开发涉及了Java语言的很多技术原理,如图形界面设计、事件处理、接口、系统托盘、网络通信、线程等,这里对Java网络通信相关的几个关键技术原理予以介绍:

1.UDP(User Datagram Protrol)

用户数据报协议UDP是传输层的无连接通信协议,由于具有通信速度较快的特点。所以常常被应用在某些无须实时交互、准确性要求不高但传输速度要求较高的场合。Java.net软件包中的DatagramSocket类和Datagram-Packet类为实现UDP通信提供了支持。DatagramPacket类用于创建数据报。其中一种用于传递数据报,该数据报中包含要传递到的目的地址,另一种数据报用于接收传递过来的数据报中的数据,它的方法getDataO可以获得数据报中的数据。DatagramSoeket类是在程序中发送和接收数据报的Socket,它的方法sendO、receiveO用来发送和接收数据报,DatagramSoeket类对象创建后,它在本地机器端口监听是否有数据到达或者将数据报发送出去。UDP通信的传输过程如图2所示。

2.多线程

在实际的网络环境里,同一时间只对一个用户服务是不可行的。系统应满足能够同时响应多个客户端的连接请求,与多人同时进行会话。将服务器写成多线程的,不同的线程为不同的客户服务。主程序监听并接收多个客户端的请求。线程负责网络连接,与客户进行消息传输,如图3所示。

线程是比进程更小一级的执行单元。一个进程在执行过程中可以产生多个线程,形成多条执行线索。每个线程也有它自身的产生、存在和消亡的过程。Java的线程是通过Java的软件包Java.lang中定义的类Thread来实现的。Thread类的构造方法有:ThreadO;Thread(Runnabletarget);在Java中通过ranO方法为线程指明要完成的任务,有两种技术来为线程提供runO方法:(1)继承Thread类并重载runO方法;(2)通过定义实现Runnable接口的类进而实现runO方法。

3.JavaDB

JavaDB(Derby)是一个纯Java实现、开源的数据库管理系统(DBMS),源于Apache软件基金会(ASF)名下的项目Derby。从Java6开始,Sun的JDK中就附带了JavaDB,安装JDK后,在%JAVA_HOME%\Sun\目录下将生成一个JavaDB文件夹。其中包括核心库、演示程序以及数据库实例。作为内嵌的数据库。Java程序员不再需要耗费大量精力安装和配置数据库。就能进行安全、易用、免费的数据库编程。它支持存储过程和触发器,有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库。前者的数据库服务器和客户端都在同一个JVM里面运行。后者允许数据库服务器端和客户端不在同一个JVM里面。而且允许这两者在不同的物理机器上。本系统采用内嵌模式使用JavaDB。数据库中的表用于存放用户信息和窗体位置信息。

四、系统实现

1.主窗体设计

主窗体界面由用户列表、系统公告提示栏、系统选项卡组成。调用JtabbedPane类创建选项卡面板,通过JtabbedPane类的addTabO方法添加卡片,其中系统选项卡用于切换不同管理界面,包括:用户列表、系统工具和系统设置3个卡片。

(1)用户列表:用户列表使用JTree树控件实现,并实现了TreeCellRenderer接口,通过其中的getTreeCell-RendererComponentO方法,创建实现显示自定义图标的树单元格渲染器,自定义树节点的样式,绘制用户的边框、头像和状态图标信息。程序的资源(如图片、声音等)与程序存放在一起并打包到一个JAR文件中,可以保证程序和资源的同步。

(2)系统工具:系统工具选项卡包括界面设置、搜索用户、系统更新功能,这些方法都是通信系统中的工具

类,可以由其他类来直接调用,因此这些方法都设置为静态方法。对系统外观进行设置时,使用UIManager类的setLookAndFeelO方法设置不同的LookAndFeel外观。通过多重循环。根据用户指定的IP范围搜索用户;使用net use命令访问服务器进行升级。

(3)系统设置:系统设置选项卡中可以设置系统相关参数,如程序升级路径、登录用户名及密码、搜索IP范围。在构造方法中初始化窗体上的控件,数据库操作类、首选项对象等属性,为窗体添加事件监听器、为公告信息按钮添加监听器等。在构造方法中初始化Socket服务器,启动并指定通信端口号。

2.消息通信

由于UDP是无连接的,因此无法进行双向通信,如果要进行双向通信,必须两端都成为UDP Server。通过DatagramSocket类和DatagramPacket类来实现通信。Data-gramSocket负责监听端口及读写数据,DatagramPacket作为数据流对象进行传输。服务器端程序初始化时启动指定端口,从用户列表树获取对方的IP,将用户在文本框中输入的消息转化为字符数组。调用DatagramSocket类的sendO方法将消息发送至客户端,发送结束后立即清空发送文本框,并通过requestFousO获得焦点。客户端程序启动时,创建DatagramSocket类对象,在指定的端口监听;调用DatagramSoeket类的receiveO方法来接收从对方传输过来的DatagramPacket数据报;通过getHostAddressO方法从数据报中获取发送方的IP地址、姓名,并将其显示;调用DatagramPacket类的getDataO方法获取数据,最后调用JTextPane类的replaceSelectionO方法将数据报中的信息追到信息文本框中,进行可视化显示。

3.文件传输

文件传输问题是一种IO读写问题。对于网络而言也是如此。从服务器文件系统中通过流把文件中的数据写入到服务器的进程中,然后把进程中的数据通过网络IO系统传递到客户端,网络中的数据以字节流的形式保存。当该字节流被客户进程接受后。客户进程通过客户本地文件流写入本地的文件系统中。File,FilelnputStream和FileOutputStream提供了基本的本地文件输入输出接口。服务器从本地读取要输出的FiIe文件,通过类FileOut-putStream将其创建为一个文件输出流;DataOutputStream类和DatalnputStream类提供了上面的字节包装和解包器的实现,将其转换为可以在网络中传输的数据流;调用类DataOutputStream的write()方法将网络输出流写人到缓冲区,调用flush()方法刷新缓冲区,将数据写入到客户端;客户端通过网络接受服务器数据。并调用类DatalnputStream的read()方法进行数据解包,转换为FilelnputStream流,将数据写入客户本地File文件。

4.数据库的实现

JDBC是一个标准的数据库访问接口,能访问各种不同的关系型数据库。JDBC为Java提供一个调用级的接口,主要完成三个方面的功能:建立与数据库的连接:向数据库发送SQL语句;处理数据库,返回结果。这些功能由一系列API实现,其中主要的接口有驱动程序管理器(DriverManager)、驱动(Driver)、连接(Conneetion)、SQL语句(Statement)和结果集(ResuhSet)。内嵌模式的JavaDB通过JDBC组件连接数据库步骤实例如下:

Class.forNameC("org.apache.derby.jdbc.EmbeddedDriver");∥加载JDBC驱动程序

String url="jdbc:derby:testdb";

∥提供JDBC URL

Connection con=DriverManager.getConnection(url);∥获取Connection对象

Statement st=conn.createStatement ();

∥将SQL语句发送到数据库

ResultSet rs=st.executeQuery("select*from testtable");∥返回结果集

其中DriverManager类是JDBC的管理层,作用于用户和驱动程序之间,用于在数据库和相应驱动程序之间建立连接。在JavaDB中建立一个数据库,并在这个数据库中创建两个表,一个用于存放用户信息,其中包括用户的IP、主机名称、姓名、头像图标;另一个是存放窗体位置和大小信息,将用户调整后的窗体位置和窗体大小存储到窗体信息表中,下次用户启动程序时,系统根据数据库表中的记录恢复。存储用户信息,进行添加、删除用户时,执行相应的数据库操作,进行SQL更新,最后关闭数据库。创建数据库操作类。它的方法负责有关数据库的操作,该类在构造方法中驱动并连接数据库。

五、结束语

本文介绍了利用Java技术设计开发的校园局域网络通信系统,阐述了系统的功能结构、网络通信相关的技术原理,着重分析了信息发送、文件传输的过程、原理及在开发中所涉及的主要的类和方法。根据系统的应用情况来看,系统具有较友好的通信界面及流畅的网络通信效果。基本满足了界面友好、速度快、安全以及稳定等特点。当然系统还有不完善之处,如:文件传输没有实现离线传输功能,缺少创建群功能等,这些还需要以后逐步实现。

参考文献:

[1]董迎红,张杰敏.Java语言程序设计实用教程[M].北京:中国林业出版社,2006.

[2]苗春义等.Java项目开发全程实录[M].北京:清华大学出版社,2009.

[3]谷庚华,李成贵.Java多线程技术在网络通信系统中的应用[J].西安外事学院学报,2007(1 2):99-104.

[4]田绪安,王红梅.一种基Java的网络通信程序现代电子技术[J].2009(09):1858-1860.

[5]梁普选.Java程序设计与网络编程[M].北京:清华大学出版社,2007.

[6]刘万军.Java6程序设计实践教程[M].北京:清华大学出版社,2009.

(编辑:杨馥红)

推荐访问:局域网 通信系统 校园 设计 JAVA

热门排行Top Ranking

支部组织生活方面存在问题清单和整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的支部组织生活方面存在问题清单和整改措施党组织生活个人问题整改清单文章,供大家阅读参考

2021年党员个人问题清单及整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的2021年党员个人问题清单及整改措施党组织生活个人问题整改清单文章,供大家阅读参考。

浅析军队战斗力损耗的新变化

关键词:军队;战斗力损耗;新变化军队战斗力的结构,是战斗力各要素间的结合方式和相互关系。军队战斗力的

小学六年级毕业演讲稿100字左右9篇

小学六年级毕业演讲稿100字左右9篇小学六年级毕业演讲稿100字左右篇1敬爱的老师,亲爱的同学们:大

问题及整改措施 (2) 药房个人存在问题及整改措施

下面是小编为大家精心整理的问题及整改措施(2)药房个人存在问题及整改措施文章,供大家阅读参考。精品文章《问题及

个人问题清单及整改措施(最新) 能力作风建设个人问题清单及整改措施

下面是小编为大家精心整理的个人问题清单及整改措施(最新)能力作风建设个人问题清单及整改措施文章,供大家阅读参考。在认真

疫情防控赞美警察诗朗诵 关于警察的诗朗诵

下面是小编为大家精心整理的疫情防控赞美警察诗朗诵关于警察的诗朗诵文章,供大家阅读参考。疫情防控赞美警

纳税人满意度调查存在不足及对策探讨 提升纳税人满意度的方式方法有哪些

下面是小编为大家精心整理的纳税人满意度调查存在不足及对策探讨提升纳税人满意度的方式方法有哪些文章,供大家阅读参考。纳

小学思想品德教育面临的问题及对策

摘要:小学思想品德课程是小学教育教学过程中不可或缺的一门综合性课程,它对学生良好品德的形成具有重要影

2020党支部班子查摆问题清单及整改措施 农村党支部问题清单

下面是小编为大家精心整理的2020党支部班子查摆问题清单及整改措施农村党支部问题清单文章,供大家阅读参

消防安全检查简报 派出所校园消防安全检查简报

下面是小编为大家精心整理的消防安全检查简报派出所校园消防安全检查简报文章,供大家阅读参考。简报第2期申扎县中学

2021教师党员年度个人总结8篇

2021教师党员年度个人总结8篇2021教师党员年度个人总结篇1敬爱的党组织:我是一个普通年轻的人民