您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 课程设计 局域网实时通讯工具
郑州轻工业学院课程设计任务书题目:局域网实时通讯工具姓名:赵尉尉院(系):数学与信息科学系专业班级:信科10-1班学号:541010010155指导教师:裴云霞时间:2013年6月24日至2013年6月29日完成期限:2013年6月21日指导教师签名:裴云霞课程负责人签名:裴云霞2013年6月21日摘要当今,是一个信息高度发达的时代,计算机无疑已经成为网络通信的主角,生活节奏的加快,使得人们对通信速度的要求越来越高。在未接通外网的情况下,通过目前流行的QQ等即时通讯软件交流则不适合局域网内的用户。无疑需要一款软件满足局域网内的计算机之间的通讯需要。本次设计旨在开发一款方便局域网用户之间互相进行文字交流的即时通讯软件。本软件无服务器段,使用此软件,用户可以与局域网中的其他使用本软件的用户同时进行文字交流。实现局域网内用户通信。解决局域网用户之间交流不便利的问题。提高用户的工作、学习效率。目录1绪论..............................................................................................................................11.1开发环境............................................................................................................11.2Java语言.............................................................................................................11.3关于MyEclipse..................................................................................................22程序结构和设计思想...................................................................................................22.1本程序需要解决的主要技术问题....................................................................22.2程序设计结构....................................................................................................22.3程序设计思想....................................................................................................33程序分析和具体实现...................................................................................................53.1程序运行时数据的存储....................................................................................53.1.1当前用户的个人信息.............................................................................53.1.2在线用户的用户信息...........................................................................53.1.3正在会话的用户信息...........................................................................63.2网络通信的实现及使用到的常量....................................................................63.2.1程序中用到的常量.................................................................................63.2.2广播的实现.............................................................................................63.2.3发送数据包的实现.................................................................................73.2.4监听指定端口信息的实现.....................................................................73.3程序的可视化界面的实现................................................................................73.3.1设置用户名.............................................................................................83.3.2在线用户及正在会话用户列表.............................................................83.3.3会话窗口...............................................................................................103.6发布程序.........................................................................................................105主要参考文献............................................................................................................11课程设计成绩评定表....................................................................................................1211绪论1.1开发环境操作系统:MicrosoftWindows8程序语言:Java2开发环境:MyEclipse2013+JDK1.61.2Java语言Java平台演进到Java2后,分别针对不同领域的需求被分成三个版本,亦即J2EE、J2SE、J2ME。本程序使用J2SE。J2SE是Java的标准版本(Java2StandardEdition),定位在客户端,主要用于桌面应用软件的编程。J2SE包含那些构成Java语言核心类库。Java语言区别于其它编程语言的特点主要有:(1)平台无关性(2)安全性(3)面向对象(4)分布式(5)键壮性本程序中,突出体现了Java语言的面向对象编程的特点,将对象实例化的模式贯穿到了程序设计的始终,而且严格按照Java语言的跨平台特性设计程序,完全摆脱了windows操作系统的束缚。21.3关于MyEclipseMyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。2程序结构和设计思想2.1本程序需要解决的主要技术问题1.提供友好的用户界面2.实现信息收发2.2程序设计结构本程序按照功能可分为两个层:界面层和网络通信层。其中界面层主要采用JavaSwing编程技术编写用户界面,网络通信层采用JavaSocket技术编写数据交互程序。随程序的容量不断扩大,在同一个目录下存放所有的代码和执行文件,显得十分混乱,加大了不必要的工作量。因此,为了方便代码和其他资源文件的管理,本程序将所有的代码文件按功能分为user、utils、window三个个功能包,它们实现的功能分别为:3user包:程序运行时需要的临时用户信息。utils包:程序的通信功能实现及程序中用到的常量。window包:构建本程序的主要窗口。该程序工程的大致结构如图1所示:图1工程结构2.3程序设计思想网络编程的基本模型就是客户机到服务器模型,简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置。并去建立两者之间的联系,然后完成数据的通讯。这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端。4目前,在互联网上比较常见的聊天软件通常都将程序分成两个部分使用,即客户机程序和服务器程序。客户机程序在网上发布供用户使用而服务器程序则只供服务器使用,一般不公开。采用这种模式可以方便管理员对所有用户进行管理,但它必须单独提供一台计算机作为服务器。而对于在局域网内使用的聊天软件,由于计算机的数量有限,而且计算机之间的服务关系经常变化或者根本没有服务关系,采用这种模式就显得力不从心了。所以,综合考虑上述因素,本程序在服务关系上做了作了一个新的设计,不再区分所为的服务器程序与客户端程序。当程序启动时,启动广播在线信息的线程,同时启动监听消息的线程。即用户输入用户名并打开在线用户的列表时,启动广播线程每隔一段时间便向局域网中的所有用户广播在线信息,同时启动监听其他主机发来的消息的线程,若接收到在线广播则将该用户添加到在线用户列表中。在进行消息通信时,通过指定端口发送消息,线程监听到其他用户发来的信息便提示用户查看。JavaSocket编程包含两个方面:一是基于UDP协议的JavaDatagramSocket和JavaDatagramPacket,二是基于TCP/IP协议的JavaSocket和JavaServerSocket。JavaDatagramSocket/DatagramPacket是java.net包中用于UDP通信协议的类,其中DatagramSocket称为报文套接字,主要用于创建UDP通信中的报文套接字并发送报文,DatagramPacket称为数据报,主要用于装载用户即将发送的报文。Java中运用这两个类进行UDP通信,实现快速的不可靠的简单数据传输。本程序中收发用户消息和系统消息的工作都由它们来完成。JavaSocket/ServerSocket是java.net包中用于TCP/IP通信协议的类,其中Socket称为客户机套接字,用于创建客户机程序,ServerSocket称5为服务器套接字,用于创建服务器。Java中运用这两个类进行TCP/IP通信,实现面向数据链接的可靠数据传输,本程序中收发文件(文件夹)都是由这两个类来完成的。由于目前局域网通信状况已经得到了很好的改善,因此本程序并不采用可靠的TCP协议,而是采用不可靠的UDP传输协议进行快速传输。3程序分析和具体实现3
本文标题:课程设计 局域网实时通讯工具
链接地址:https://www.777doc.com/doc-3557729 .html