即时聊天系统qq项目研发与实现-毕设论文.doc

上传人:教**** 文档编号:86821658 上传时间:2023-04-15 格式:DOC 页数:43 大小:1.02MB
返回 下载 相关 举报
即时聊天系统qq项目研发与实现-毕设论文.doc_第1页
第1页 / 共43页
即时聊天系统qq项目研发与实现-毕设论文.doc_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《即时聊天系统qq项目研发与实现-毕设论文.doc》由会员分享,可在线阅读,更多相关《即时聊天系统qq项目研发与实现-毕设论文.doc(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、课题名称 即时聊天系统QQ项目研发与实现 摘要随着信息技术的飞速发展,人们在工作中对即时聊天,文件传输的使用和需求越来越多。现有的商用QQ和MSN等聊天软件娱乐性很强,源代码不明确,信息安全性无法保障,软件本身作为第三方软件不便管理。从技术层面上说单纯的即时聊天软件结构简单,功能模块不多,因此很多公司自行研发此类软件供内部使用。聊天工具作为计算机的应用之一,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,大大加深了人们之间的联系,从单一的文本 聊天,到语音聊天以及到现在的图像、视频聊天、即时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它将会作为未来人们通过因特网相

2、互联系和娱乐的主要平台。我的毕业设计所开发的是基于Java+SQL Server 2005的即时聊天系统QQ项目研发与实现,这个工具有利于人们的信息交流。实现企业局域网通讯的目的就是使人们之间的信息交流更加省时、方便。这个工具可以使局域网内部人员实现聊天功能。它无需连入国际互联网,设计选用Eclipse开发环境和Microsoft SQL Server 2005数据库。本系统采用C/S(客户端和服务器)模式,该项目主要采用Socket对象来实现客户端和服务器端之间的通信。通过对聊天工具的开发,能了解计算机如何通过网络互相通信以及在此相互通信的基础上实现的应用程序级的协议。关键词:即时聊天;局域

3、网;客户端;服务器端;Socket对象AbstractWith the rapid development of information technology, people in the work of instant messaging, file transfer and demand more and more.Existing commercial QQ and MSN chat software, such as entertainment is very strong, the source code is not clear, information security cant

4、 guarantee, inconvenient management software itself as a third party software.From a technical level pure instant messaging software structure is simple, function modules, so many companies to develop such software is for internal use.Chat tools as one of the application of computer, the users commo

5、n interests, it bring people into a virtual world, greatly deepened the connections between people, from a single text chat, voice chat, and to present images, video chat, instant messaging, send and to the development of online games and so on, have greatly expanded the concept of chat tool, it wil

6、l be the future people connect with each other through the Internet and entertainment the main platform.My graduation design development is based on Java + SQL Server 2005 QQ instant messaging system project development and implementation, this tool is helpful for peoples communication.Achieve the p

7、urpose of the enterprise local area network (LAN) communication between people is to make the information communication more time-saving and convenient.This tool can make the internal staff realize the chat function.It need not connected to the Internet, the design is to choose the Eclipse developme

8、nt environment and Microsoft SQL Server 2005 database.This system USES C/S (client and server) mode, the project mainly USES the Socket object to implement the communication between the client and server.Through the chat tool development, can understand the computer how to communicate with each othe

9、r through the network and to communicate with each other in the implementation on the basis of the application level protocol.Keywords: Instant messaging;Local area network (LAN);The client;The server side;The Socket object- III -目录第1章 绪论11.1本课题的开发背景及意义11.2课题研究内容11.3设计组织结构1第2章 开发工具及相关技术32.1常用开发工具32.

10、2运行环境42.3相关技术52.4 C/S系统结构14第3章 需求分析163.1 可行性分析163.2 系统需求163.3系统功能需求173.4 系统性能要求17第4章 系统数据库设计194.1数据概述194.2数据库分析204.3系统数据表设计20第5章 系统设计225.1系统实现关系图225.2系统功能模块设计22第6章 系统功能实现236.1客户端设计236.2服务器端设计25结论26致谢27参考文献28扬州大学本科生毕业设计第1章 绪论1.1本课题的开发背景及意义随着信息技术的飞速发展,人们在工作中对即时聊天,文件传输的使用和需求越来越多。现有的商用QQ和MSN等聊天软件娱乐性很强,源

11、代码不明确,信息安全性无法保障,软件本身作为第三方软件不便管理。从技术层面上说单纯的即时聊天软件结构简单,功能模块不多,因此很多公司自行研发此类软件供内部使用。聊天工具作为计算机的应用之一,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,大大加深了人们之间的联系,从单一的文本 聊天,到语音聊天以及到现在的图像、视频聊天、即时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它将会作为未来人们通过因特网相互联系和娱乐的主要平台。此次设计从实际工程应用的角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,编程实现基于java的网络聊天工具。本项目是作为本人本科的

12、毕业设计课题提出来的,它规模适中,适合于个人开发,能够锻炼学习新知识能力,锻炼编程能力,锻炼软件工程思维方式。通过对聊天工具的开发,能了解计算机如何通过网络互相通信以及在此相互通信的基础上实现的应用程序级的协议。1.2课题研究内容本设计主要应用Java网络编程、C/S架构开发模式以及SQL Server 2005数据库连接等相关知识。需要熟练掌握C/S架构模式下的开发技术,将所学知识应用于实际的生活中,并且在实际生活中发挥其主要功能并获得效益。本设计内容包括以下功能模块。(1)QQ服务器端模块:主要包括服务器端启动、服务器连接数据库、服务器连接客户端线程、服务器操作数据库等。(2)QQ客户端模

13、块:主要包括QQ客户端登录验证、好友列表、聊天界面、用户好友在线提示、客户端连接服务器端线程等。1.3设计组织结构本毕业设计的主体主要分为六大部分。第一部分:即绪论部分,主要介绍了毕业设计(论文)的开发背景意义、研究内容、组织结构等内容。第二部分:开发工具及相关技术,主要介绍本毕业设计中所用的开发软件、运行环境,以及开发过程中所需要的结构体系等要素。第三部分:介绍整个系统的可行性分析以及功能需求等内容。第四部分:介绍数据库的基本数据表结构设计。第五部分:根据需求分析整个系统的构架并陈列主要功能模块。第六部分:详细讲解了各个功能模块的实现过程和运行结果。第2章 开发工具及相关技术2.1常用开发工

14、具2.1.1 Eclipse简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建

15、与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如C/C+、COBOL、PHP等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software

16、Architect,它构成了 IBM Java 开发工具系列的基础。Eclipse开发工具界面如图2-1所示:图2-1 Eclipse开发工具界面2.2运行环境2.2.1 JDK简介Java Development Kit(JDK)是Sun公司专门为Java程序员开发的免费软件开发工具包(Software Development Kit,SDK)。自从Java语言问世以来,JDK成为应用最为广泛的软件开发工具包。此外,还可以使用Open JDK进行开发。对于程序开发人员,必须使用JDK进行开发调试。对于普通用户,仅需要安装JRE来运行Java程序。在Oracle官方网站下载的JDK文件名如jd

17、k-7u45-windows-i586。其中jdk表示JDK;7表示主版本号;u45表示该主版本号下的45个更新版本;windows表示JDK版本使用windows系统;i586表示处理器类型。JDK安装完成后文件夹结构如图2-2所示:图2-2 JDK安装完成后文件夹结构bin文件夹包含各种命令,例如javac命令可以将Java源代码编译成class文件;java命令可以运行class文件;jar命令可以将相关的类文件进行打包;javadoc命令用于从源代码中提取说明文档等。src压缩文件包含了Java SE API的源代码。2.2.2 Microsoft SQL Server 2005数据库

18、简介Microsoft SQL Server是一个关系型数据库管理系统。它最初是由Microsoft Sybase和Ashton-Tate公司共同开发的,于1988年推出了第一个QS/2版本,后期逐渐推出Microsoft SQL Server 2000、Microsoft SQL Server 2005等版本,目前较为流行的是Microsoft SQL Server 2005.Microsoft SQL Server 2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了

19、更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。Microsoft SQL Server 2005结合了分析、报表、集成和通知功能。这使企业可以构建和部署经济有效的BI解决方案,帮助团队通过记分卡、Dashboard、Webservices、和移动设备将数据应用推向业务的各个领域。Microsoft SQL Server 2005数据库界面如图2-3所示:图2-3 Microsoft SQL Server 2005数据库界面使用Java开发即时聊天系统QQ项目相对简单,只需要正确安装JDK、Eclipse和Microsoft SQL Server 2005数据

20、库即可。2.3相关技术2.3.1 Java网络编程原理Java语言实在网络环境下诞生的,所以Java语言虽然不能说是对于网络编程的支持最好的语言,但是必须说是一种对于网络编程提供良好支持的语言,使用Java语言进行网络编程是一件比较轻松的工作。Java语言网络编程原理如图2-4所示:图2-4 Java语言网络编程原理(1)客户端程序: import java.io.*;import .*;public class TalkClient public static void main(String args) trySocket socket=new Socket(127.0.0.1,4700)

21、;/向本机的4700端口发出客户请求 BufferedReader sin=new BufferedReader(new InputStreamReader(System.in);/由系统标准输入设备构造BufferedReader对象 PrintWriter os=new PrintWriter(socket.getOutputStream();/由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream();/由Socket对

22、象得到输入流,并构造相应的BufferedReader对象 String readline;readline=sin.readLine(); /从系统标准输入读入一字符串 while(!readline.equals(bye)/若从标准输入读入的字符串为 bye则停止循环 os.println(readline);/将从系统标准输入读入的字符串输出到Serveros.flush();/刷新输出流,使Server马上收到该字符串 System.out.println(Client:+readline);/在系统标准输出上打印读入的字符串 System.out.println(Server:+is

23、.readLine();/从Server读入一字符串,并打印到标准输出上 readline=sin.readLine(); /从系统标准输入读入一字符串 /继续循环 os.close(); /关闭Socket输出流 is.close(); /关闭Socket输入流 socket.close(); /关闭Socketcatch(Exception e) System.out.println(Error+e); /出错,则打印出错信息 (2)服务器端程序: import java.io.*;import .*;import java.applet.Applet;public class TalkS

24、erverpublic static void main(String args) tryServerSocket server=null;tryserver=new ServerSocket(4700);/创建一个ServerSocket在端口4700监听客户请求 catch(Exception e) System.out.println(can not listen to:+e);/出错,打印出错信息 Socket socket=null;trysocket=server.accept();/使用accept()阻塞等待客户请求,有客户 /请求到来则产生一个Socket对象,并继续执行 c

25、atch(Exception e) System.out.println(Error.+e);/出错,打印出错信息 String line;BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream();/由Socket对象得到输入流,并构造相应的BufferedReader对象 PrintWriter os=newPrintWriter(socket.getOutputStream();/由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader sin=n

26、ew BufferedReader(new InputStreamReader(System.in);/由系统标准输入设备构造BufferedReader对象 System.out.println(Client:+is.readLine();/在标准输出上打印从客户端读入的字符串 line=sin.readLine();/从标准输入读入一字符串 while(!line.equals(bye)/如果该字符串为 bye,则停止循环 os.println(line);/向客户端输出该字符串 os.flush();/刷新输出流,使Client马上收到该字符串 System.out.println(Se

27、rver:+line);/在系统标准输出上打印读入的字符串 System.out.println(Client:+is.readLine();/从Client读入一字符串,并打印到标准输出上 line=sin.readLine();/从系统标准输入读入一字符串 /继续循环 os.close(); /关闭Socket输出流 is.close(); /关闭Socket输入流 socket.close(); /关闭Socketserver.close(); /关闭ServerSocketcatch(Exception e)System.out.println(Error:+e);/出错,打印出错信息

28、 2.3.2 JDBC连接数据库JDBC连接数据库是每一门编程语言的重中之重,因为我们所处的社会随时都会跟数据打交道,因此连接数据库是我们编程中必须做的任务之一。JDBC连接SQL数据库代码如下:package jdbc.test;import java.sql.*;public class Test public static void main(String srg) String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; / 加载JDBC驱动 String dbURL = jdbc:sqlserver:/loca

29、lhost:1433; DatabaseName=mytest; / 连接服务器和数据库mytest String userName = sa; / 默认用户名 String userPwd = xushouwei; / 密码 Connection dbConn = null; Statement stmt = null; try Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); stmt = dbConn.createStatement(); System.ou

30、t.println(Connect Succeed!); / 连接成功控制台输出语句 ResultSet rs = stmt.executeQuery(select * from mytest); while (rs.next() System.out.print(rs.getInt(1) + + rs.getString(2) + + rs.getString(3) + n); catch (Exception e) e.printStackTrace(); 2.3.3 JDBC操作数据库一个项目的建立离不开与数据库打交道,对数据库实现各种操作(如:增、删、改、查)以达到系统功能的实现的要求

31、。因为利用JDBC技术对数据库中操作是实现系统完整性的基础。JDBC操作数据库代码如下:package jdbc_test;import java.sql.*;public class Main private Connection conn=null; private Statement stmt=null; private String driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver;/驱动程序名称private String username=root;/数据库用户名private String password=root;

32、/数据库密码private String sql=SELECT * FROM 班级信息表 ;/SQL语句private ResultSet rs=null;/用于接受返回的结果集 public void selectClass() try /step1:加载数据库厂商提供的驱动程序 Class.forName(driverName); catch(ClassNotFoundException e) e.printStackTrace(); /step2:提供数据库连接的URL String dbURL=jdbc:sqlserver:/localhost:1433;DatabaseName=教务

33、管理系统; try /step3:通过DriverManager获得数据库的一个连接对象 conn=DriverManager.getConnection(dbURL,username,password); catch(SQLException e) e.printStackTrace(); try /step4:创建Statement(SQL的执行环境) stmt=conn.createStatement(); /step5:执行SQL语句 rs=stmt.executeQuery(sql); /step6:处理返回结果 while(rs.next() int i=1; String cla

34、ssNo=rs.getString(i+); String special=rs.getString(i+); int people=rs.getInt(i+); System.out.print( 班级编号: +classNo); System.out.print( 专业: +special); System.out.println( 学生人数: +people); catch(SQLException e) e.printStackTrace(); finally /step7:关闭JDBC的资源 if(null!=rs) try rs.close(); catch(SQLExceptio

35、n e) e.printStackTrace(); if(null!=stmt) try stmt.close(); catch(SQLException e) e.printStackTrace(); if(null!=conn) try conn.close(); catch(SQLException e) e.printStackTrace(); public static void main(String args) Main main=new Main(); main.selectClass(); 2.4 C/S系统结构C/S结构(Client/Server,客户端/服务器模式)是一

36、种软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通信开销。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再交给服务器,对应的优点就是客户端响应速度快。客户端和服务器端常常分别处在相距很远的两台计算机上,客户端程序的任务是将用户的要求提交给服务器程序,再将服务器程序返回的结果以特定的形式显示给用户;服务器程序的任务是接收客户端程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。C/S结构的原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成

37、数据处理、数据表示以及用户接口功能;服务器端完成DBMS的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。C/S结构如图2-5所示:图2-5 Client/Server,客户端/服务器模式原理图第3章 需求分析随着计算机网络技术的快速发展,基于网络编程的软件公司有必要定制一个合理、专业、透明、高效的需求分析平台。3.1 可行性分析3.1.1系统的必要性即时通讯(Instant Messenger,简称IM),是指能够即时发送和接受互联网消息等的业务。自1998年面试以来,特别是近几年的迅速发展,即时通讯的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和

38、搜索等多种功能。即时通讯不再是一个3.1.2系统的可行性C/S架构的数据库应用程序已有数10年的发展历程,迄今为止,技术十分成熟和完善,而且在社会的各个领域应用十分广泛。另外,使用QQ作为即时通讯的互联网面对面聊天的时代已经不再是个传说。Java语言作为跨平台开发的首选语言,不仅提供了大量工具方法,还实现了自动回收内存。另外,Microsoft SQL Server 2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理,它与Microsoft Visual Studio、Microsoft Office System以及新的开发工具包(包括Business In

39、telligence Development Studio)的紧密集成使其与众不同,无论是开发人员、数据库管理员、信息工作者还是决策者,Microsoft SQL Server 2005都可以为用户提供创新的解决方案,帮助用户从数据中更多地获益。3.2 系统需求根据即时聊天系统QQ项目的本质来看,它是采用客户端/服务器(C/S)模式,有效的实现了局域网内的信息传递,实现了即时通讯的共能。C/S模式图3-1所示:图3-1 客户端/服务器(C/S)模式3.3系统功能需求根据对即时聊天系统QQ项目的实际操作来看,要求该即时聊天系统QQ项目应具有如下功能:(1)QQ登录界面、QQ好友列表界面、QQ聊天

40、界面应该简体大方、功能全面、操作简单(2)QQ应该能够顺利完成登录验证、帐号申请、密码保护功能(3)QQ应该能够顺利完成注册好友、删除好友、添加好友功能(4)QQ应该能够顺利的进行好友在线提示功能(5)QQ应该能够顺利实现一对一、多对多聊天功能3.4 系统性能要求根据前面所作的需求分析及功能的需求可以得出,即时聊天系统QQ项目实施后,应达到一下体统性能标准:(1)窗体界面要求美观大方、功能全面、操作简单(2)程序整体结构和操作流程合理顺畅,实现个性化设计(3)规范、完善的C/S架构模式(4)可以顺利完成该即时聊天系统QQ项目所规定的功能需求(5)系统运行稳定、安全可靠第4章 系统数据库设计SQ

41、L Server 2005具有很强的完整性与可延伸性,具有较低的价格比与性能比,考虑到本系统的稳定性与可靠性以及开发程序与用户需求,笔者决定在设计该系统是使用SQL Server 2005数据库来满足系统的需求。在设计QQ聊天系统之前,有必要说明数据库 的基本概念和本设计所应用的数据表。4.1数据概述计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计、和传播等操作。对于数据库应用开发人员来说,为使现实世界的信息流计算机化,并对计算机化的信息进行各种操作,就是如何利用数据库管理系统、系统软件和相关硬件系统、将用户的要求转换成有效的数据结构,

42、并使数据结构易于实现用户新的要求的过程。确切地说,数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。所谓数据库是指一定的组织方式存储在一起的,能为多个用户所共享的,与应用程序彼此独立的相关联的数据集合。而数据库系统是指实现有组织地、动态地存储大量关联数据,支持多用户访问的计算机软硬件资源与数据库管理员组成的系统。个人系统是按用户的需求进行数据库定义、存取、运行、建立和维护功能。系统的数据库定义模型如图4-1所示:图4-1 数据库定义模型4.2数据库分析即时聊天系统QQ项目的服务器端主要记录注册人员的信息。为了使读者可以根据本系统开发一个完整的QQ聊天系统,也就是可以在数据库中记录所有注册人员的信息,本系统使用Micrisoft SQL Server 2005 作为后台数据库,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com