版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-PAGE 0. z.- . -可修编- .JISHOUUNIVERSITY专业课课程论文题 目:局域网的多功能聊天室的设计与实现作 者:学 号:所属学院:信息科学与工程学院专业年级:总 评 分:完成时间:大学信息科学与工程学院局域网的多功能聊天室的设计与实现大学信息科学与工程学院, 416000摘 要在计算机技术飞速开展的今天,随着Internet的普及和开展,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见、最直接的网上交流的方式。本论文主要研究一个以网络交友为主,为广阔用户提供一个借助网络进展人际交往的信息平台。本文所设计的局域网聊天系统是基于开放的WEB效劳器应用程序
2、开发设计的,其主要特征是能动态完成信息的传递且具有高效的交互性,有效的处理客户请求且具有更简单、更方便的数据库访问方法,易于维护和更新。这种技术程序由JAVA、HTML、数据库和脚本语言组合而成。主要功能模块包括:用户登录、注册局部;编写和显示聊天记录局部;管理员管理聊天室的管理局部。聊天系统编写和显示聊天记录局部界面友好,提供动作、表情、公聊或私聊等操作;管理局部可以删除不守规矩的注册用户、踢出在线用户以及删除*些不合时宜的聊天记录等、根据数据库需求分析,在ACCESS中定义3个表:用user表来存放注册用户信息、用activetable表来存放当前在线用户信息以及用message表来存放聊
3、天记录。本系统相比拟其他信息交流平台具有开发方便、快捷,占用资源少,维护方便等优点。【关键词】Java,数据库,脚本语言,聊天系-. z.- .LAN of multi-function chat room design and ImplementationRaotao(College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000)AbstractThe rapid development of puter technology today, with the popularity an
4、d development of Internet, peoples work and life has bee increasingly inseparable from the support of the information network, and the chat room is one of the most mon, the most direct online munication mode.In this thesis, a network of friends, for the vast number of users with a network of have th
5、e aid of interpersonal information platform.The design of the LAN chat system is based on an open WEB server application development and design, its main characteristic is to plete the information transmission dynamically with high interactivity, effective customer request and has a more simple, mor
6、e convenient database accessing method, easy maintenance and update.The technical program by JAVA, HTML, database and script language and bination.The main function modules include: user login, registration section; write and display chat recording part; the administrator manage the chat room manage
7、ment section.Chat system to prepare and display chat interface friendly, with action, e*pression, the public chat or operation; management can remove the unruly registered user, play online user and delete certain be inopportune or inappropriate chat records, according to the database needs analysis
8、, defined in ACCESS 3: user table table for registered users of information, using activetable table to store the current online user information and the use of message table to store the chat record.This system is pared with other information e*change platform with the development of convenient, fa
9、st, less resource occupation, easy maintenance and other advantages.Key words:JAVA; datacapture; information analysis ;Winpcap;Jpcap-. z.目 录 TOC o 1-3 h z u HYPERLINK l _Toc339221411第一章引言 PAGEREF _Toc339221411 h 1HYPERLINK l _Toc3392214121.1课题背景及意义 PAGEREF _Toc339221412 h 1HYPERLINK l _Toc3392214131
10、.2课题研究现状 PAGEREF _Toc339221413 h 1HYPERLINK l _Toc3392214141.3研究容 PAGEREF _Toc339221414 h 2HYPERLINK l _Toc3392214151.4论文组织方式 PAGEREF _Toc339221415 h 2HYPERLINK l _Toc339221416第二章关键技术 PAGEREF _Toc339221416 h 3HYPERLINK l _Toc3392214172.1 java概述 PAGEREF _Toc339221417 h 3HYPERLINK l _Toc3392214182.2套接
11、字 PAGEREF _Toc339221418 h 3HYPERLINK l _Toc3392214192.2.1 Socket简介 PAGEREF _Toc339221419 h 3HYPERLINK l _Toc3392214202.2.2 Socket工作过程 PAGEREF _Toc339221420 h 4HYPERLINK l _Toc3392214212.3 TCP三次握手 PAGEREF _Toc339221421 h 4HYPERLINK l _Toc339221422第三章需求分析 PAGEREF _Toc339221422 h 5HYPERLINK l _Toc33922
12、14233.1功能需求 PAGEREF _Toc339221423 h 5HYPERLINK l _Toc3392214243.2性能要求 PAGEREF _Toc339221424 h 5HYPERLINK l _Toc339221425处理数据能力 PAGEREF _Toc339221425 h 5HYPERLINK l _Toc339221426时间特性 PAGEREF _Toc339221426 h 5HYPERLINK l _Toc3392214273.2.3 数据库需求 PAGEREF _Toc339221427 h 5HYPERLINK l _Toc3392214283.2.5
13、其他标准的约束 PAGEREF _Toc339221428 h 5HYPERLINK l _Toc3392214293.2.6 外部接口需求 PAGEREF _Toc339221429 h 6HYPERLINK l _Toc3392214303.2.7 通信接口 PAGEREF _Toc339221430 h 7HYPERLINK l _Toc339221431第四章概要设计 PAGEREF _Toc339221431 h 8HYPERLINK l _Toc3392214324.1体系构造设计 PAGEREF _Toc339221432 h 8HYPERLINK l _Toc339221433
14、4.1.1 复审数据流、控制流 PAGEREF _Toc339221433 h 8HYPERLINK l _Toc339221434软件体系构造 PAGEREF _Toc339221434 h 8HYPERLINK l _Toc3392214354.2模块设计 PAGEREF _Toc339221435 h 9HYPERLINK l _Toc3392214364.2.1 用户扫描系统模块 PAGEREF _Toc339221436 h 9HYPERLINK l _Toc3392214374.2.2 在线交流系统模块 PAGEREF _Toc339221437 h 10HYPERLINK l _
15、Toc3392214384.2.3 系统配置系统 PAGEREF _Toc339221438 h 11HYPERLINK l _Toc339221439第五章详细设计 PAGEREF _Toc339221439 h 14HYPERLINK l _Toc3392214405.1用户登录模块 PAGEREF _Toc339221440 h 14HYPERLINK l _Toc3392214415.2用户列表模块 PAGEREF _Toc339221441 h 15HYPERLINK l _Toc3392214425.3文本聊天模块 PAGEREF _Toc339221442 h 17HYPERLI
16、NK l _Toc339221443第六章测试及实现结果 PAGEREF _Toc339221443 h 21HYPERLINK l _Toc3392214446.1测试环境 PAGEREF _Toc339221444 h 21HYPERLINK l _Toc3392214456.2测试过程 PAGEREF _Toc339221445 h 21HYPERLINK l _Toc339221446用户登录及用户列表 PAGEREF _Toc339221446 h 21HYPERLINK l _Toc3392214476.2.2 文本聊天 PAGEREF _Toc339221447 h 22HYPE
17、RLINK l _Toc3392214486.2.3 文件传输 PAGEREF _Toc339221448 h 25HYPERLINK l _Toc339221449完毕语 PAGEREF _Toc339221449 h 27HYPERLINK l _Toc339221450参考文献 PAGEREF _Toc339221450 h 28-. z.第一章引言1.1课题背景及意义在网络越来越兴旺的今天,人们对网络的依赖越来越多,各种网络应用层出不穷,网络编程越来越受大广阔程序员的重视。网络编程的目的就是指直接或间接地通过网络协议与其他计算机进展通讯。网络编程中有两个主要的问题,一个是如何准确的定位
18、网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进展数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/效劳器C/S构造。即通信双方一方作为效劳器等待客户提出请求并予以响应。客户则在需要效劳时向效劳器提出申请。效劳器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个效劳进程来响应该客户,同时自己继续监听效劳端口,使后来的客户也能及时得到效劳
19、。网络聊天是网络编程的典型应用之一,编写网络聊天软件对于学习网络编程无疑有着很大的帮助。本小组编写本软件,旨在通过软件的编写与实现,来提高对网络编程的理解和掌握。1.2课题研究现状网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进展层层拆解,提取相关协议中的信息。本设计主要通过使用Java编写出了一款简单的软件对数据包信息进展捕获,捕获出所需要的敏感信息,并且将捕获出来的信息保存起来。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台即
20、JavaSE,JavaEE,JavaME的总称。Java 技术具有卓越的通用性、高效性、平台移植性和平安性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景1。1.3研究容网络编程的目的就是指直接或间接地通过网络协议与其他计算机进展通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进展数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台
21、主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/效劳器C/S构造。即通信双方一方作为效劳器等待客户提出请求并予以响应。客户则在需要效劳时向效劳器提出申请。效劳器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个效劳进程来响应该客户,同时自己继续监听效劳端口,使后来的客户也能及时得到效劳。网络聊天是网络编程的典型应用之一,编写网络聊天软件对于学习网络编程无疑有着很大的帮助。本软件旨在为同一局域网用户间提供便利的局域网效劳,局域网用户可以通过此聊天软件在各终端相互发送聊
22、天信息,同时可以快速传送文件,方便局域网用户间的快速有效通信。1.4论文组织方式首先,本论文从目前网络的平安现状开场,详细研究了本课题的背景以及意义,由于目前我国已经进入了网络时代,需要使用自己的网络聊天信息平安系统来保护自己的网络聊天信息系统,尤其是对于秘密性的信息,必须将网络平安和信息平安放在非常重要的地位。其次,在对本论文的背景有所了解的情况下,对本课题所必须的关键技术进展了介绍,包括java的概述,套接字,三次握手等。最后,在对所必须得根底知识有所了解的情况下,按照各模块的功能,分别详细介绍了各个功能的实现过程。-. z.-. z.第二章关键技术2.1 java概述JAVA语言有下面一
23、些特点:简单、面向对象、分布式、解释执行、鲁棒、 平安、体系构造中立、可移植、高性能、多线程以及动态性。丰富的类库JAVA提供了大量的类以满足网络化、多线程、面向对象系统的需要。语言包提供的支持包括字符串处理、多线程处理、数学函数处理等,可以用它简单地实现JAVA程序的运行平台。实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。输入输出包用统一的流模型来实现所有格式的I/O,包括文件系统、网络、输入低级网络包用于实现Socket编程。抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件, 包括窗口、菜单、滚动条、对话框等,使得JAVA可以移植到不同平台的机器。网络包支持Int
24、ernet的TCP/IP协议,提供了与Internet的接口。它支持URL连接,的即时访问,并且简化了用户/效劳器模型的程序设计。JAVA和C、C+对于变量声明、参数传递、操作符、流控制等使用了一样的传统,使得熟悉C、C+的程序员能很方便地进展编程。同时, JAVA为了实现其简单、鲁棒、平安等特性,也摒弃了C和C+中许多不合理的容。2.2套接字Socket简介Socket,简称套接字,用于实现网络上客户和效劳器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比拟低的层次上通信的。具体的说:一个效劳器应用程序一般侦听一个特定的端口等
25、待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个Socket建立连接,客户端通过写Socket来通知效劳器,以读Socket中的信息,类似的效劳器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。效劳器也通过它的本地端口连接一个Socket,通过读写和客户端通信。Socket工作过程Socket程序的工作过程:1.建立Socket连接:在通信开场之前由通信双方确认身份,建立一条专用的虚拟连接道。2.数据通信:利用虚拟连接通道传送数据信息进展通信。3.关闭:通信完毕时,再将所建的虚拟连接撤除。2.3 T
26、CP三次握手第一次握手:原主机发送一个带有本次连接的序号的请求的一个数据帧。第二次握手:目的主机收到请求后,如果同意连接,则发回一个带有一个本次连接序号和源端机连接序列号确实认。第三此握手:源端机收到含有两次初始序列号的应答后,再向目的主机发送一个带有两次连接的序列号确实认。具体过程如下:图2.1 三次握手协议第三章需求分析3.1功能需求做为一个局域网的即时聊天程序,除了根本的聊天功能,文件传输也是经常用到的功能。本软件需具有以下几个功能:1.用户登录设立一个效劳器,实现多用户即时通讯;用户在登录的同时需输入一些个性化的信息,以便于各用户之前的识别。2.文本聊天聊天室功能,即所谓的群聊,聊天容
27、所有人可见;聊天功能,即所谓的私聊,聊天容仅聊天双方可见;用户可对字体进展设置。3.文件转输多线程,收发可同时进展。3.2性能要求处理数据能力时间特性响应时间:所有的发送操作响应时间一般不超过1秒,大量的信息发送,呈现应该在5秒显示或者提示相关出错信息。更新处理时间:所有提交数据一般在3秒相应。 数据库需求聊天记录较多,在需要时能即时存取。相关配置信息,需要时能即时读取。 设计约束 其他标准的约束.1 硬件约束 奔腾4处理器及以上存:256M以需求规格说明书 硬盘:50M以上剩余空间.2 属性.2.1 可用性 .2.2 可靠性 .2.3 效率.2.4 平安性 .2.5 可维护性要求类的构建符合
28、高聚低耦合度的要求 外部接口需求.1 用户接口用户界面:采用Windows的通用图形界面,对用户友好,且必须对鼠标键盘提供支持,界面设计应遵循:1. 尽量保持一致性:界面规应遵循Winows软件界面的规 2. 设计完整的对话过程:系统的每一次对话都应该有明确的次序:开场、中间处理过程、完毕。3. 提供简单的错误处理机制 4. 提供信息反应:用多种信息提示用户当前软件运行状态,软件界面元件的功能。5. 操作可逆:其动作可以是单个的操作,或者是一个相对独立的操作序列。 6. 设计良好的联机帮助 :.2 软件接口 本节指定需使用的其他软件产品如:数据管理系统、操作系统、数学软件包,以及同其他应用系统
29、之间的接口。如果已有完整的接口文件,需在本节指明。说明容包括: a) 接口标识;b) 功能描述; c) 数据流程和控制流程的方向;d) 数据格式、容量;e) 接口类型如手动或自动;f) 接口数据中断的优先级别;g) 中断响应时间; h) 异常处理等。 对每一个所需的软件产品,需提供名称、缩写、规格说明、版本号、来源等容。 通信接口本产品用户各终端和效劳器属于一个局域网,网采用TCP/IP或UDP协。-. z.第四章概要设计4.1体系构造设计 复审数据流、控制流图4.14.1.2软件体系构造4.1.2.1软件程序构造图图4.2 构造图4.1.2.2系统配置子系统图4.3 系统配置子系统4.1.2
30、.3消息记录子系统图4.4 消息记录子系统4.2模块设计 用户扫描系统模块图4.5用户扫描系统模块图4.6用户扫描系统模块 在线交流系统模块图4.7在线交流系统模块 系统配置系统.1 上线提示模块图4.8上线提示模块 设置个人资料模块图4.9设置个人资料模块 系统屏蔽模块图4.10系统屏蔽模块-. z.第五章详细设计5.1用户登录模块只列出程序界面以及与效劳器端通讯局部的代码:图5.1用户登录模块客户端class Connect e*tends JFrame implements ActionListener, ItemListener,KeyListenerpublic void link(
31、) throws E*ception / 连接效劳器hostName = hostTe*t.getTe*t().trim();port = Integer.parseInt(portTe*t.getTe*t();client = new Socket(hostName, port);/ 创立一个流套接字并将其连接到指定 IP 地址的指定端口号。in = new BufferedReader(new InputStreamReader(client.getInputStream();out = new PrintWriter(client.getOutputStream();out.printl
32、n(nameTe*t.getTe*t() + & + se*);out.flush();效劳器端:public static void addConnection(Socket s, ClientProc cp)if (connections = null)connections = new Vector();connections.addElement(s);if (clients = null)clients = new Vector();clients.addElement(cp);public static void deleteConnection(Socket s, ClientP
33、roc cp)throws IOE*ceptionif (connections != null)connections.removeElement(s);s.close();if (clients != null)clients.removeElement(cp);public static Vector getClients()return clients;5.2用户列表模块只列出程序界面以及与效劳器端通讯局部的代码:客户端:public void valueChanged(ListSelectionEvent e)/ 监听下拉列表的显示容if (e.getSource() = peopl
34、eList)tryString select = (String) peopleList.getSelectedValue();if (select != null) / 确保选择非空String userInfo = select.split();String name = userInfo0.trim(); / 提取名字if (!name.equals(chf.myName) / 不能添加自己int count = chf.perponsboBo*.getItemCount();for (int i = 0; i count; i+)chf.perponsboBo*.setSelected
35、Inde*(i);/ 选择第i项String strName = (String) chf.perponsboBo*.getSelectedItem();if (name.equals(strName) / 如果已经在列表中,就复合框中选中,所以要确保没有重名return;/ 如果没有添加,就会执行下面语句 添加chf.perponsboBo*.addItem(name); catch (E*ception ee)System.out.println(发生错误 在valueChanged + ee);public void actionPerformed(ActionEvent e)if (e
36、.getSource() = refurbishButton) / 如果监听到要刷新列表trylistModel.clear(); / 清空列表chf.out.println(refurbish); / 发送刷新请求到效劳器chf.out.flush(); catch (E*ception ee)效劳器端:public String getName()return name;public String getSe*()return se*;public Socket getSocket()return s;private void updateList()/ 更新用户列表即发送当前在聊天室的用
37、户到新来的用户列表中Vector cs = ChatServer.getClients();if (cs != null)for (Enumeration e = cs.elements(); e.hasMoreElements();)ClientProc cp = (ClientProc) e.ne*tElement();String e*ist_name = cp.getName();String e*it_se* = cp.getSe*();/* * for (int i = 0;ics.size() ;i+ ) String e*ist_name * =(ClientProc)cs.e
38、lementAt(i).getName(); String e*it_se* = * (ClientProc)cs.elementAt(i).getSe*(); */System.out.println(old + & + e*ist_name + & + e*it_se*);out.println(old + & + e*ist_name + & + e*it_se*);out.flush();5.3文本聊天模块只列出程序界面以及与效劳器端通讯局部的代码:图5.2 文本聊天模块客户端:if (e.getSource() = sentButton)/ 如果监听到发送信息按钮被点击trymywo
39、rds = inMsgField.getTe*t();if (mywords.trim().length() != 0) / 不能发送空消息也不能都发空格if (withWho.equals(所有人)outmsg = mywords;/ 发送到效劳器out.println(outmsg);out.flush();/ 显示到我的频道里面insert(myMsgArea, myName + : + mywords);/myMsgArea.setCaretPosition(myMsgArea.getTe*t().length(/ ); else / 对*个人交谈outmsg = withWho +
40、& + privateFalse + &+ withWho + & + mywords;if (privateTalkFlag)outmsg = withWho + & + privateTure + &+ withWho + & + mywords;insert(myMsgArea, 您对 + withWho + 说: + mywords);/ myMsgArea.setCaretPosition(myMsgArea.getTe*t()./ length(); elseinsert(myMsgArea, myName + 对 + withWho + 说: + mywords);/myMsgA
41、rea.setCaretPosition(myMsgArea.getTe*t().length(/ );/ 发送到效劳器out.println(outmsg);out.flush(); catch (E*ception ee)ee.printStackTrace();insert(myMsgArea, 与效劳器连接中断,请重新登录!);/ myMsgArea.setCaretPosition(myMsgArea.getTe*t().length(); finallyinMsgField.setTe*t(); / 清空输入框效劳器端:/* * * 发送信息给所有的人*/public static
42、 void sendAll(String s)if (connections != null)for (Enumeration e = connections.elements(); / Enumeration过时的接口,/ 可以用for each循环e.hasMoreElements();)tryPrintWriter pw = new PrintWriter(Socket) e.ne*tElement().getOutputStream();pw.println(s);pw.flush(); catch (IOE*ception e*)e*.printStackTrace();System.out.println(s);/* 发送信息给单独一个人*/public static boolean sendOne(String name, String msg)if (clie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 违规行为自律保证书
- 2024年七年级数学下册 第10章 一元一次不等式和一元一次不等式组10.1不等式说课稿(新版)冀教版
- 2024秋八年级数学上册 第4章 实数4.2 立方根说课稿(新版)苏科版
- 江西省万载县株潭中学高中语文 1.1 天下有道丘不与易也教案 新人教版选修《先秦诸子选读》
- 2024-2025学年高中历史 第一单元 古代中国经济的基本结构与特点 第1课 发达的古代农业新课教案1 新人教版必修2
- 2024-2025学年新教材高中地理 第2单元 乡村与城镇 第2节 地域文化与城乡景观教案 鲁教版必修2
- 高考地理一轮复习第十三章区域与区域发展课件
- 2024企业主要负责人应知应会重点内容
- 9.3《声声慢》-高一语文上学期同步备课拓展(统编版必修上册)
- 苏教版 燕子课件
- 2024年安能物流合作加盟协议版
- 质量管理体系过程方法和风险思维专业解读与应用之7:5 领导作用-5.3组织的岗位、职责和权限(雷泽佳编制-2024B1)
- 《算法设计与分析基础》(Python语言描述) 课件 第5章回溯法1
- 地面找平专项施工方案
- 初三化学-水的净化省公开课获奖课件说课比赛一等奖课件
- 2024-2030年中国财税服务行业市场深度调研及发展前景与投资研究报告
- 第二次月考卷-2024-2025学年统编版语文六年级上册
- 申论国家公务员考试试题与参考答案
- 乱扔垃圾的课件
- 人音版八年级上册第二单元 多彩音乐剧 《雪绒花》教案
- 2024-2030年中国安全校车市场发展分析及市场趋势与投资方向研究报告
评论
0/150
提交评论