logo资料库

基于Socket网络聊天系统的设计与实现.doc

第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
资料共45页,剩余部分请下载后查看
前 言
第一章 系统开发工具简介
第一节 客户机/服务器模型
第二节 JAVA简介
第三节 Socket简介
第四节 Eclipse简介
第五节 MySQL简介
本章小结
第二章 系统分析
第一节 可行性分析
第二节 业务流分析
第三节 需求分析
一、系统设计目标
二、系统功能需求
本章小结
第三章 系统概要设计
第一节 系统总体描述
第二节 模块设计
第三节 数据库设计
一、设计原则
二、具体步骤
本章小结
第四章 系统实现
第一节 数据库模块实现
一、数据流图
二、数据库的连接
第二节 注册模块实现
第三节 登录模块实现
第四节 聊天模块实现
第五节 文件传输模块实现
本章小结
第五章 系统测试
第一节 服务器模块测试
第二节 注册模块测试
第三节 登录模块测试
第四节 聊天模块测试
第五节 文件传输模块测试
本章小结
附 录
一、英文原文
二、英文翻译
摘 要 随着 Internet 的飞速发展,网络聊天以其操作简单、方便快捷、私密性好 等优点已经迅速发展成为最普遍的网络交流方式之一,越来越受到人们的青睐, 丰富了人们的网上生活。开发并实现具有自身特色的网络聊天系统具有实际应用 价值。 本网络聊天系统基于 Java 应用程序设计,以 Client/Server 为开发模式,以 Eclipse 为开发环境,以 MySQL 为后台数据库,利用 JDBC 连接数据库。系统主 要包括服务器模块和客户端模块,服务器模块能够对客户端发来的用户信息进行 匹配、读取和转发;客户端模块能够进行注册、登录、聊天和文件传输。系统不 但实现了点到点的聊天,还利用 Java 提供的 Socket 类和多线程功能,在单个程 序中同时运行多个不同进程,从而实现多点对多点的聊天。 总之,该聊天系统具有开放性,实时性,多话题交错等特点,方便了人们网 上交流。 【关键词】网络聊天 服务器模块 客户端模块 Socket
ABSTRACT With the rapid development of Internet, network chat with its simple operation, convenient and gond privacy has quickly become the most popular way of communication networks, more and more people like it, enrich people's online lives. Development and Realization of the network chat system with its own characteristics and has practical application value. The Internet chat system is based on Java application, designed by Client / Server as the development of models, as Eclipse development environment, MySQL as the backend database, and using JDBC to connect database. The system includes server modules and client modules, server module can match users' data, read and forward the information which is sent by client; client module to regist, login, chat and file transfer. The system not only achieves peer-to-peer chat, but also use the Java provids Socket class and multi-threading capabilities, in a single program run different processes at the same time, in order to achieve multipoint chat. In short, the chat system is open, real-time and multi-topic staggered features, easy for people to communicate online. 【Key words】Network Chat Client Module Server Module Socket
目 录 前 言........................................................................................................................... 1 第一章 系统开发工具简介....................................................................................... 2 第一节 客户机/服务器模型................................................................................ 2 第二节 JAVA 简介................................................................................................ 3 第三节 Socket 简介...............................................................................................4 第四节 Eclipse 简介..............................................................................................7 第五节 MySQL 简介............................................................................................ 8 本章小结................................................................................................................ 9 第二章 系统分析..................................................................................................... 10 第一节 可行性分析............................................................................................ 10 第二节 业务流分析.............................................................................................11 第三节 需求分析.................................................................................................11 一、系统设计目标........................................................................................11 二、系统功能需求....................................................................................... 12 本章小结.............................................................................................................. 13 第三章 系统概要设计............................................................................................. 14 第一节 系统总体描述........................................................................................ 14 第二节 模块设计................................................................................................ 15 第三节 数据库设计............................................................................................ 16 一、 设计原则............................................................................................. 16 二、 具体步骤............................................................................................. 17 本章小结.............................................................................................................. 18 第四章 系统实现..................................................................................................... 20 第一节 数据库模块实现.................................................................................... 20 一、 数据流图............................................................................................. 20 二、数据库的连接....................................................................................... 20 第二节 注册模块实现........................................................................................ 21 第三节 登录模块实现........................................................................................ 23 第四节 聊天模块实现........................................................................................ 24 第五节 文件传输模块实现................................................................................ 25 本章小结.............................................................................................................. 27 第五章 系统测试..................................................................................................... 28
第一节 服务器模块测试.................................................................................... 28 第二节 注册模块测试........................................................................................ 29 第三节 登录模块测试........................................................................................ 30 第四节 聊天模块测试........................................................................................ 31 第五节 文件传输模块测试................................................................................ 32 本章小结.............................................................................................................. 34 总 结..............................................................................................错误!未定义书签。 致 谢..............................................................................................错误!未定义书签。 参考文献..........................................................................................错误!未定义书签。 附 录......................................................................................................................... 37 一、英文原文...................................................................................................... 37 二、英文翻译...................................................................................................... 40
前 言 随着互联网的快速发展,网络聊天软件以它的实时性、高效率和低成本的特 质充当了信息交流的媒介,并逐渐成为网络商圈和生活商圈中不可或缺的组成部 分[1]。网络聊天工具实现了“沟通无极限”,它打破了办公室里上级与下级直接 的等级限制,也打破了长辈与晚辈之间的时间限制,也打破了异地之间的距离限 制。同时人们对于网络聊天工具的友好的界面和快捷的操作方式也越来越高。 大家都知道,网络上最常用的交流工具是腾讯 QQ,QQ 来源于 OICQ(open icq),ICQ 是“I seek you”的简称,是“我找你”的意思。QQ 引用了 ICQ 的功 能即即时通信,我们只要将对方加为好友,不管对方是否在线,我们都可以向对 方发送信息,无论对方在哪里,只要登陆 QQ,他就能够看到我们给他发的信息, 我们就能够随时随地的和对方进行信息交流[2]。 随着网络聊天工具的不断完善,它的功能越来越多样化,由最初的文字交流 发展成现在的视频、语音交流,同时也提供了文件的发送和共享功能。其中不难 发现,现在的网络聊天已经不再是一个简单的沟通工具,而是一个信息资讯、交 流互动、娱乐的工具。随着技术的发展,网络聊天工具具有即时性、高效性、安 全性、功能上较强的延展性,能够提供方便、快捷的交流[3][4]。 本系统主要分析了网络聊天系统应该具备的功能、运行方式和实现方式,开 发出一个基于 Socket 的网络聊天工具。该系统主要实现功能包括:注册、登录、 聊天和文件的传输。 1
第一章 系统开发工具简介 第一节 客户机/服务器模型 一、C/S 结构简介 客户机/服务器模型,又称为 Client/Server 模型,简称 C/S 架构[5]。C/S 计算 技术在信息产业中占有重要的地位。 它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务 合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。客户端的任务 是将用户的要求提交给服务器程序,再将服务器程序返回的结果以特定的形式显 示给用户。服务器程序的任务是接收客户程序提出的服务请求,进行相应的处理, 再将结果返回给客户程序。 二、C/S 特点 C/S 是客户端/服务器,一般适合于软件开发,对客户端的计算机配置要求 比较高,客户端也需要安装软件,比如 QQ。C/S 架构软件的特点如下: 应用服务器运行数据负荷较轻。C/S 体系结构由客户应用程序和数据库服务 程序组成,二者分别称为前台程序和后台程序。一旦服务器程序被启动,就随时 等待响应客户程序发来的请求;客户应用程序当需要对数据库中的数据进行任何 操作时,客户程序就会自动寻找服务器程序,并向其发出请求,服务器程序根据 规程做出响应,返回结果,应用服务器运行数据负荷较轻。 数据的储存管理功能较为透明。在数据库应用中数据的储存管理功能是由服 务器程序和客户应用程序分别独立进行的。前台应用可以违反的规则,并且通常 把那些不同的运行数据,在服务器程序中不集中实现。因此对于工作在前台程序 上的最终用户是“透明”的,他们无须干涉背后的过程就可以完成自己的一切工 作。在 C/S 提醒体系下,数据库不能真正成为公共、专业化的仓库,它受到独立 的专门管理。 2
第二节 JAVA 简介 Java 是由 SunMicrosystems 公司于 1995 年 5 月推出的 java 程序设计语言和 Java 平台的总称。用 Java 实现的 HotJava 浏览器(支持 Java applet)显示了 Java 的魅力:跨平台、动态的 Web、internet 计算。从此 Java 被广泛接受并推动力 web 的迅速发展,常用的浏览器限制均支持 Java applet。 Java 平 台 由 Java 虚 拟 机 (Java Virtual Machine ) 和 Java 应 用 编 程 接 口 (Application Programming Interface,简称 API)构成。Java 应用在编程接口为 Java 应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬 件和操作系统平台上安装一个 Java 平台之后,Java 应用程序就可运行。Java 应 用编程接口已经从 1.1X 版本发展到 1.2 版。目前常用的 Java 平台基于 Java1.4, 最近版本为 Java1.7。 Java 分 为 三 个 体 系 J2SE(Java2 Standard Edition) , J2EE(Java 2 Platform enterprise Edition),J2ME(Java 2 Micro Edition)。 Java 是一种具有简单性(Java 语法是 C++语法的一个“纯净”版本)、面向 对象(面向对象是一种程序设计技术,它将重点放在数据和对象的接口上)、网 络技能(Java 有一个扩展的例程库,用于处理 HTTP 和 FTP 这类的 TCP/IP 协议)、 健壮性、安全性(Java 可以构建防病毒、防篡改的系统)、体系结构中立、可移 植性、解释型、高性能、多线程的动态语言[6]。 Java 的 I/O 建立于流(stream)之上。输入流读取数据;输出流写入数据。 不同的流类如 java.io.FileInputStream 和 sun.net.TeletOutputStream 读写某一种数 据源。但是所有输入流都有相同的基本方法,所有输入流也使用相同基本方法来 读取数据[7]。 Java 中的数据流类型有两种: 输出流(OutputStream):输出流数据流经数据从程序送到数据接收者,如可 以向显示器屏幕或者文件传输数据。输出流只能写不能读。 输入流(InputStream):程序从外部设备写数据时,使用输入流。输入流将 数据从数据源传递给程序,可以从键盘或者文件中获得数据。输入流只能读不能 写。 3
第三节 Socket 简介 Socket 通常被称为“套接字”,用于描述 IP 地址和端口[8]。Socket 是建立在 传输层协议(主要是 TCP 和 UDP)上的一种套接字规范[9],Socket 接口是 TCP/IP 网络的 API。在网络通信中,如果两台计算机之间是靠一个“通道”通信,那么 这个“通道”的两端就是套接字。 Socket 是传输层提供的网络进程通信接口,相当于我们现在所用的“插座”, 是进程之间通信的抽象连接点。在日常生活中,我们常见到信号插座、电话插座、 接收/发送信号(或能量)的插座。Socket 就相当于在电话线和电话机之间安放 的插座。在网络上,两个程序是靠一个双向链路进行通信,这个双向链路的每一 端就成为一个 Socket。 进程之间通信,首先要需要建立一个自己的 Socket,每个 Socket 都能进行 读/写操作,进行读写操作时就会用到 Socket 中的输入/输出流[10]。 客户端建立 Socket 对象步骤: 1、调用 Socket()创建一个流套接字,并连接到服务器端; Socket s=new Socket(InetAddress.getByName(“服务器的主机名”),port); 2、调用 Socket 类的 getOutputStream()和 getInputStream 获取输出流和输 入流,开始网络数据的发送和接收。 OutputStream os=s.getOutputStream(); InputStream is=s.getInputStream(); byte[] buf=new byte[100]; int len=is.read(buf);//从服务器端读取数据 System.out.println(new String(buf,0,len)); os.write("Hello,this is client".getBytes());//向服务器端输入数据 3、最后关闭通信套接字。 os.close();is.close();s.close(); 服务器端建立 Socket 步骤: 1、创建一个服务器端套接字,并绑定到指定端口上; ServerSocket ss=new ServerSocket(int port), 2、调用 accept(),监听连接请求,如果客户端请求连接,则接受连接,返 回通信套接字。 Socket s=ss.accept(); 3、调用 Socket 类的 getOutputStream()和 getInputStream 获取输出流和输 入流,开始网络数据的发送和接收。 OutputStream os=s.getOutputStream(); 4
分享到:
收藏