java DIGGER社交网络及聊天系统_第1页
java DIGGER社交网络及聊天系统_第2页
java DIGGER社交网络及聊天系统_第3页
java DIGGER社交网络及聊天系统_第4页
java DIGGER社交网络及聊天系统_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

javaDIGGER社交网络及聊天系统摘要随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统关键词局域网;聊天;socket;javaiJavaDIGGERSocialNetworkandChatSystemAbstractAlongwiththefastdevelopmentofInternet,thenetworkchatingtoolhasalreadybecomeonekindofimportantcommunicationtoolsandreceivedmoreandmorewebcamsfavor.Atpresent,manyextremelygoodchatingtoolshaveappeared.forexample,Netmeeting,QQ,MSN-Messagerandsoon.Thissystemdevelopmentmainlyincludestwoaspectsoftheserverprocedureofthenetworkchatandthecustomerprocedureofthenetworkchat.TheformerestablishestheserverthroughtheSocket,theservercanreadanddelivertheinformationwhichclientsidesends,andcanrenovatetheuserstabulation.Thelattermakeaconnectionwiththeserver,carriesoncommunicationbetweentheclientsideandtheclientside.WiththeLANcorrespondencemechanismprinciple,throughinherittingtheThreadkindtoestablishthemultithreadingdirectly.Inthedevelopment,itusestheelementarytheoryknowledgewhichthecomputernetworkprogrammes.forexample,TCP/IPagreement,Client/Serverpattern,networkprogrammingdesignmethodandsoon.Inthenetworkprogramming,itrealizesreadingandtransmissionoftheinformation,thatis,informatonflowsrealizetheinformationexchange,introduceinformationflowanalysisforrealizingasystem,inwhichcontainessomebasicsoftwareengineeringmethods.Afteranalyzesthesesituations,thisLANchatingtooltakesEclipseasthebasicdevelopmentenvironmentandcompilesinjavalanguage.first,itwillestablishthesystemapplicationprototypeinashorttime.then,fortheinitialprototypesystem,itneedsconstantlyrevisedandimproved,untilaviablesystem.KeywordsLAN;Chat;Socket;Java目录摘要.iAbstract.ii1引言.11.1国内外发展状况.11.2研究的意义.21.3本文的主要工作.22应用需求分析与可行性分析.42.1应用需求分析.42.2运行需求分析.42.3其他需求分析.42.4可行性分析.42.4.1经济可行性.42.4.2技术可行性.52.4.3运行可行性.52.4.4时间可行性.52.4.5法律可行性.52.5系统开发步骤.53相关技术简介.73.1Eclipse介绍.73.2Java语言.73.3Jar命令.73.5编程运行环境.83.6SQLServer数据库简介.83.7JDBC.94系统分析.104.1系统功能要求.104.1.1在线社交网络及聊天系统的要求.104.1.2在线社交网络及聊天系统的管理子系统要求.104.2系统性能要求.105数据库设计.125.1数据库需求分析.125.1.1内容.125.1.2处理.125.1.3数据项.125.1.4数据结构.125.2数据库逻辑结构设计.125.3数据库表的创建.136系统实现.146.1用户登陆界面.146.2用户注册.166.3聊天模块.196.4修改密码.236.5发送和接收文件.247系统调试与测试.307.1程序调试.307.2程序的测试.307.2.1测试的重要性及目的.307.2.2测试的步骤.317.2.3测试的主要内容.31总结.33参考文献.34致谢.35外文原文.36外文翻译.6101引言随着互联网技术的发展,互联网应用越来越丰富。互联网以其独特的传播方式吸引了大量用户,同时也给人们带来了许多便利,譬如可以借助于网络进行相互交流、信息传递等。聊天工具作为互联网中运用最为广泛的通信工具之一,它可以让用户之间进行即时的交流和信息的传递。聊天工具的出现可以说是基于互联网通信交流方式的历史性变革,它已经渐渐取代了原来效率低、费用高的如信件、电报的通信方式,以其快速、交互、简便的方式给用户的交流提供了简单、易用的信息平台,成为现今应用最为广泛的即时通信工具之一。随着相关技术的日益发展,用户对功能的需求不断提高。为了更好地服务于用户,聊天工具的功能也在不断地完善。在未来的网络时代中,聊天工具将以即时通信为其基本特点,并与各种网络应用整合,同时随着无线网络的广泛应用,它将成为未来不可缺少的一种通信软件。即时通讯系统的特点是在网上进行信息的实时交流。即时通讯系统的发展使得人们可以进行网上社交,获得社会的尊重,实现自我需求,这同时也成为了网络即时通讯软件发展的驱动力。而物质文明的日益发达所带来的副作用,有使得人们习惯与周围的人保持距离。以致人们更愿意对陌生人敞开心扉。与传统通讯方式相比,即时通讯系统具有快捷,廉价,隐秘性高的特点,在网络中可以跨年龄,身份,行业,地域的限制,达到人与人,人与信息之间的零交流。从这点上讲,网络即时通讯的出现改变人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。1.1国内外发展状况中国的大部分网络用户都拥有自己的QQ号码。腾讯计算机系统有限公司成立于1998年11月。1999年2月,腾讯自主开发了基于Internet的即时通信网络工具腾讯即时通信TencentInstantMessenger,简称TIM或腾讯QQ。腾讯QQ经过三年时间的发展,到2002年,其用户群成为中国最大的互联网注册用户群,注册用户达到1亿6000万,其中活跃用户总数超过5000万。自此腾讯QQ成为中国最大的即时通信服务提供商。腾讯公司是中国最早也是目前中国市场上最大的本土互联网即时通信软件开发商。公司成立7年多以来,一直以追求卓越的技术为导向,始终处于稳健、高速发展的状态。腾讯QQ超过4.3亿的注册用户群体现了网络用户对腾讯QQ这一聊天工具的广泛应用。在当今市场经济高速发展的前提下,腾讯QQ也在不断自我完善,渐渐地演变为一个人性化、市场化的多功能的聊天工具软件,它可以给网络聊天用户带来越来越多的人性化服务:从原来单一的文字聊天过渡到集语音、视频、文件传输等多功能于一身的聊天软件。ICQ和MSN是在国外比较盛行的即时聊天工具,腾讯QQ的开发对MSN和ICQ都进行了借鉴。ICQ是ISeekYou(我找你)的缩写,最初是一家以色列公司开发出来的免费软件,中文名称目前可以称之为“网络呼叫器”,它在全球拥有超过4000万的用户。事实上这种软件最主要的功能就是让用户知道网络上的朋友现在有没有上线(前提是对方也有安装ICQ),然后可以互送Messages(消息)交谈或是交换档案等等,比电子邮件更具即时性。正如一位ICQ软件的最初程序设计员所说:“当你登录因特网之后,你周围都是些自己熟悉的人,而且,你还可以和他们分享这种体验,这的确是一件令人激动的事情。”1MSN是微软推出的聊天软件,是一套类似ICQ的网上即时通讯软件,它以最简单的方式为用户提供强有力的即时消息支持,同时能使MicrosoftOutlookExpress(R)和MSNHotmail(R)变得更简单易用。MSNMessengerService还可使用户间的联机交谈变得更加轻松愉快,了解谁在联机以及查看用户何时联机并与其交换即时消息。用户间可以进行单独的聊天,或者在同一个对话窗口中与多达四个的联系人进行聊天。自动的输入指示器可让用户知道何时联系人正在输入答复,还可以进行全球电话呼叫以非常低的费用呼叫世界的任何地方。用户可以选择所要使用的电话服务提供商,从服务提供商的列表中选择最适合的提供商。用交谈取代键盘输入,使用计算机上的话筒和扬声器就可以和位于世界各地的朋友进行交谈,甚至可以呼叫联系人将文本消息发送到联系人的移动电话和传呼机上(注:此特性仅适用于美国和加拿大),而进入“社交网络及聊天系统”结识新朋友,或加入与名人聊天,此特性在所有地区都适用。用户可以使用MSNMessenger与朋友交换照片、喜爱的音乐或任何其他文件,也可以监视新的电子邮件并查看用户有多少新的电子邮件。MSNMessenger能在收到新的Hotmail邮件时通知用户,还能邀请联系人进行联机DirectPlay兼容游戏。1.2研究的意义在当今信息时代,信息通信已成为这个世纪必不可少的组成部分,随着互联网技术的发展,聊天软件作为即时性通信工具的主流,已被越来越多的人所喜爱。目前国内外做聊天系统的很多,产品也是琳琅满目,国内有诸如腾讯QQ与新浪UC网易泡泡等,国外著名的有MSN以及跨平台GAIM等.本人取最具有代表性的QQ进行了一些研究,为我毕业设计聊天系统做了充分的准备.在中国,上网的用户几乎都用腾讯QQ进行聊天。当前腾讯QQ的注册帐户已经超过4.3亿,是中国用户最多、最为流行的聊天工具。起初的QQ只支持文字聊天,随着相关技术的发展,腾讯QQ也不断的自我完善,增加众多实用的、人性化的功能,得到了许多用户的支持与喜爱。现如今腾讯公司已经初步完成了面向在线生活产业模式的业务布局:构建了QQ、QQ.com、QQ游戏以及QQ移动手机门户这四大网络平台,形成了规模巨大的网络社区。在满足用户信息传递与知识获取需求方面,拥有QQ.Com门户、QQ即时通讯工具以及年初收购的Foxmail电子邮件等;在满足用户群体交流和资源共享方面,腾讯推出的个人博客Q-Zone将与访问量极大的论坛、社交网络及聊天系统、QQ群相互协同;在满足用户个性展示和娱乐服务方面,腾讯拥有非常成功的虚拟形象产品QQshow、QQpet(宠物)和QQGame(游戏)QQMusic/Radio/LiveTV(音乐/电台/电视直播)等,另外对手机用户提供了彩铃、彩信等无线增值业务;在用户的交易需求方面,专门为腾讯用户设计开发的C2C电子商务拍卖网已经上线,并和整个社区平台无缝整合。像QQ这样聊天工具已经逐渐适应了时代的发展,市场的需求,给人们提供了全方位的信息服务平台,使用户在互联网上的生活更加丰富多彩,它不仅带来了巨大的商业价值,而且也给人们的生活带来了无比的欢乐与便利。1.3本文的主要工作随着用户对软件功能的需求不断提高,即时通讯的产品也不断地更新换代。即时通讯的发展不论是在基础应用方面还是在扩展应用方面都有着飞跃。为了满足用户的需求,包括腾讯公司的聊天软件QQ在内,许多即时性聊天工具都推出了语音聊天、视2频聊天功能模块。本文主要对聊天软件的语音聊天和视频聊天等相关功能的实现原理进行了研究。本文首先对聊天软件的发展以及其对人们的生活有何影响作了简述,并对开发环境和工具进行了相应说明并对此聊天软件系统进行了较为详细的分析;进而提出了该多功能聊天软件的设计方案。在本次多功能聊天软件的设计与开发中,本人主要负责设计开发登录模块、注册模块、聊天模块、并对此聊天软件系统的登录模块、注册模块、语音聊天、聊天模块的设计与实现进行了较详细的说明和分析。32应用需求分析与可行性分析2.1应用需求分析表2.1服务器和客户机软硬件环境系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。硬件系统环境:C600、1GMB(RAM)、500MB(HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。2.2运行需求分析硬件条件:酷睿CPU、1GRAM、10G硬盘以上的PC机;打印机;局域网。软件条件:WindowsXP2.3其他需求分析本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。2.4可行性分析2.4.1经济可行性经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作为毕业设计由我们自己开发的,在经济上的投入甚微,系统建成之后将为今后实现系统功能提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新硬件处理器:Intel酷睿内存:256M或更大硬盘:20G或更大服务器软件MicrosoftWindowsXPMicrosoftSQLSERVER2000MicrosoftOffice2003硬件无特殊要求,只要能上连接互联网即可客户机软件MicrosoftWindowsXP4系统将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件、系统软件、机房、电源、空调等;软件开发费用:若由实习单位的技术人员开发,则该项费用可以计入下面的人员费用一项;人员费用:系统开发人员、操作人员和维护人员的工资、培训费用等;消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如水、电费,打印纸、软盘、色带等开支。所有开支都不大,所以经济上是可行的。2.4.2技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本科生实习管理系统用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。2.4.3运行可行性对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前我们公司信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。本系统的开发,是典型的Mis开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。采用流行的JSP+SQLSERVER体系,已无技术上的问题。2.4.4时间可行性从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。2.4.5法律可行性(1)所有技术资料都为合法。(2)开发过程中不存在知识产权问题。(3)未抄袭任何网站,不存在侵犯版权问题。(4)开发过程中未涉及任何法律责任。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。2.5系统开发步骤一般说来,管理信息系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该5阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低管理信息系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。国外曾有人对一些软件项目开发各阶段的工作量进行了统计,结果表明,在开发过程中各工作阶段所占全部工作量的比重分别达到系统分析:系统设计:编程:模块调试:系统调试20%:15%:20%:25%:20%。由此可见,程序编写在开发工作中只占很小比例,而调试工作却占整个开发工作量的一半左右,因此“系统开发就是编程”的习惯说法显然是片面的。另据统计,在建立管理信息系统的三个阶段中,总体规划和系统开发阶段的工作量约占整个工作量的2/3,而运行、维护阶段要占1/3,这说明一个管理信息系统开发后,仍应十分重视它的维护工作,以便使系统不断完善并充分发挥其作用。63相关技术简介3.1Eclipse介绍Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加入Tomcat服务器插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。3.2Java语言Java语言是SUN公司于1995年5月推出的新一代面向对象的计算机通用编程语言,是继WWW之后又一引起世界轰动的产品。Java语言的特点是跨平台和强大的网络编程功能。在Java语言诞生之前,Internet已存在,所以Java语言本身就封装了大量进行网络编程的类库,使得网络编程功能强大,同时又简化了网络编程的操作。因此利用Java语言可以开发出功能强大的网络应用程序。3.3Jar命令功能:Java归档工具语法:jar命令选项manifestdestinationinput-fileinput-filesjar工具是个java应用程序,可将多个文件合并为单个JAR归档文件。jar是个多用途的存档及压缩工具,它基于ZIP和ZLIB压缩格式。然而,设计jar的主要目的是便于将javaapplet或应用程序打包成单个归档文件。将applet或应用程序的组件(.class文件、图像和声音)合并成单个归档文件时,可以用java代理(如浏览器)在一次HTTP事务处理过程中对它们进行下载,而不是对每个组件都要求一个新连接。这大大缩短了下载时间。jar还能压缩文件,从而进一步提高了下载速度。此外,它允许applet的作者对文件中的各个项进行签名,因而可认证其来源。jar工具的语法基本上与tar命令的语法相同。命令选项:-c:在标准输出上创建新归档或空归档。-t:在标准输出上列出内容表。7-xfile:从标准输入提取所有文件,或只提取指定的文件。如果省略了file,则提取所有文件;否则只提取指定文件。-f:第二个参数指定要处理的jar文件。在-c(创建)情形中,第二个参数指的是要创建的jar文件的名称(不是在标准输出上)。在-t(表(或-x(抽取)这两种情形中,第二个参数指定要列出或抽取的jar文件。-v:在标准错误输出设备上生成长格式的输出结果。-m:包括指定的现有清单文件中的清单信息。用法举例:“jarcmfmyManifestFilemyJarFile*.class”-0:只储存,不进行ZIP压缩。-M:不创建项目的清单文件。-u:通过添加文件或更改清单来更新现有的JAR文件。例如:“jar-uffoo.jarfoo.class”将文件foo.class添加到现有的JAR文件foo.jar中,而“jarumfmanifestfoo.jar”则用manifest中的信息更新foo.jar的清单。-C:在执行jar命令期间更改目录。例如:“jar-uffoo.jar-Cclasses*”将classes目录内的所有文件加到foo.jar中,但不添加类目录本身。程序示例1:将当前目录下所有CLASS文件打包成新的JAR文件:jarcffile.jar*.class2:显示一个JAR文件中的文件列表:jartffile.jar3:将当前目录下的所有文件增加到一个已经存在的JAR文件中:jarcvffile.jar*3.5编程运行环境硬件环境:CPU:corei5内存:3G硬盘:80G软件环境:操作系统:WindowsXPProfessional应用软件:Eclipse3.1+JDK1.5.03.6SQLServer数据库简介SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特点(1)真正的客户机/服务器体系结构。(2)图形化用户界面,使系统管理和数据库管理更加直观、简单。8(3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。(4)SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQLServer也可以很好地与MicrosoftBackOffice产品集成。(5)具有很好的伸缩性,可跨越从运行Windows95/98的膝上型电脑到运行Windows(6)2000的大型多处理器等多种平台使用。(6)对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。(7)SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMSSQLServer2000新特性(1)支持XML(ExtensiveMarkupLanguage,扩展标记语言)(2)强大的基于Web的分析(3)支持OLEDB和多种查询(4)支持分布式的分区视图3.7JDBCJDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。94系统分析4.1系统功能要求4.1.1在线社交网络及聊天系统的要求此聊天软件系统是模拟现今国内最为流行的即时性通讯工具QQ而设计的,能够实现注册、登录、添加好友、文字聊天、等功能。该聊天软件系统是采用C/S结构,即客户端与服务器端的结构体系。基于对该聊天软件功能的分析,本文分别对客户端与服务器端进行了设计。该聊天软件服务器端的功能是实现对客户端提交的用户信息进行处理。服务器设计内容包含:信息接收、注册、登录、添加好友等。“信息接收”是提供服务器接受客户端发送信息的功能;“注册”是服务器端接受到用户的注册信息请求后,将请求信息写入到数据库,为用户的注册提了相关服务;“登录”是服务器通过验证登录信息来实现相关的服务;“好友添加”是服务器对添加的好友信息进行处理等相关操作。客户端即用户使用的应用程序端。用户通过该聊天软件的客户端来实现网上聊天的相关功能:注册、登录、添加好友、文字聊天、聊天等。注册功能是提交用户相关信息以及获得一个属于自己登录该聊天软件系统的用户ID号;登录功能是实现验证用户信息与合法使用该聊天软件系统的权限;添加好友是实现用户之间好友添加的操作;添加好友成功后,就可以与好友之间开始文字聊天、文件传输、聊天等功能。4.1.2在线社交网络及聊天系统的管理子系统要求对数据库中的在线用户信息进行管理。对数据库中的非在线用户信息进行管理。对数据库中的聊天信息进行管理。4.2系统性能要求系统的性能要求一般包括:计算和查询响应时间、处理容量、存储容量、人机交互的友好性、系统的安全性、可靠性以及容错能力等,如果是网络系统还应包括系统传输交换能力。本系统非网络系统,所以符合系统的一般性能要求即可。系统的性能要求应从以下几个方面确定:(1)容量要求:确定系统的容量要求,如处理的记录数和处理数据的最大容量等(2)精度要求:确定系统的精度要求,如数据或数值检索的精度要求、数据传输的精度要求等。(3)时间特性要求:确定系统的时间特性要求。如处理时间、响应时间及其峰值负载期间允许偏离范围,系统各项功能的顺序关系,由于输入类型的不同和操作方式的变化引起的有限顺序的变化。(4)适应性要求:必须指明反映系统环境变化的系统适应能力和系统适应能力的各种参数。说明当需求发生变化时系统的适应能力,指出为适应这些变化而需要设计的软件和过程。(5)人机交互友好性:要有适应与用户特点的智能化人机交互界面,便于用户操作使用。(6)系统可靠性:为提高系统可靠性必须采用模块化、结构化设计,需要对容错处10理的模块提供备份,以减少系统故障。(7)系统可维修性:系统应具有奥好的可维修性,以便在系统故障时能迅速恢复运行。本系统应具有如下性能:(1)数据库系统的扩充能力(2)快速的信息交换能力(3)快速的响应能力(4)具有较大的数据存储能力(5)系统迅速恢复能力115数据库设计聊天软件是一个数据库应用系统,系统的所有信息都是保存在数据库中。在数据库应用系统的开发中,数据库的结构设计是一个非常重要的问题。我们这里所说的数据库结构设计是指数据库中各个表结构的设计,包括信息存在哪个表中、各个表的结构如何以及各个表之间的关系。数据库结构设计的好坏,将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等。由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。但这些方法和设计者的工作经验有很大的关系。因此要从根本上解决所有数据库结构设计的问题,就需要多实践,在实践中积累经验和教训,最终成为数据库结构设计的专家。5.1数据库需求分析数据库结构设计的第一个阶段,也是非常重要的一个阶段时数据库需求分心。在这个阶段主要时收集基本数据以及数据处理的流程,为以后进一步设计打下基础。5.1.1内容调查应用系统用户所需要操作的数据,决定在数据库中存储什么数据。5.1.2处理调查应用系统用户要求对数据进行什么样的处理,理清数据库中各种数据之间的关系。5.1.3数据项包括名称、含义、类型、取值范围、长度以及和其他数据项之间的逻辑关系。5.1.4数据结构若干个数据项有意义的集合,包括名称、含义以及组成数据结构的数据项。5.2数据库逻辑结构设计概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计.也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。第一种转化是将实体转化为关系表。这种转化比较简单,只需要将实体的属性定义为表的属性即可。第二种转化是联系的转化。即将各个实体之间的联系转化为表格之间的关系,如外部键的定义。在上面工作的基础上的基础上归纳出人员管理数据库表格的组成、列的属性、表格之间的联系等等。该数据库系统要求具有以下方面的特点:结构合理;所建立的数据冗余度小,独立性强;建档、修改、查询、统计快准确;保密性、可靠性好。社交网络及聊天系统系统中各个表格的设计结果如下面的各表格所视。每个表格表示数据库中的一个表。125.3数据库表的创建表5.1用户资料数据库表5.2登录信息数据库列名数据类型说明ID主键自动编号包含一个作为记录识别标志的长整数的数字域。采用自动编号。是用户表的主索引。Name文本包含用户ID的文本域。IP文本包含用户计算机当前IP的文本域。呢称文本包含用户的呢称的文本域。Color文本包含用户发言时字体的颜色的文本域。表情文本包含用户表情的文本域说话对像文本包含用户对像的文本域说话文本包含用户说话内容的文本域动作文本包含用户动作的文本域列名数据类型说明Id主键自动编号包含一个作为记录识别标志的长整数的数字域。采用自动编号。是用户表的主索引。Name文本包含用户ID的文本域Logintime日期/时间包含用户性别的布尔变量。Sex文本包含用户登录时间的日期变量136系统实现6.1用户登陆界面第一次使用系统的用户通过填写个人信息来注册,服务器返回一个注册ID号给注册用户,用来登录。已经注册的用户在登录界面填写完相关登录信息,通过服务器的验证后就可以进入客户端界面。publicclassLoginFrameJFramejf1=newJFrame(login);JPaneljp1=newJPanel();JLabell1=newJLabel(username);JLabell2=newJLabel(password);JLabell3=newJLabel(JAVA模拟QQ登录窗口);JTextFieldjtf1=newJTextField(15);JPasswordFieldjtf2=newJPasswordField(15);JButtonjb1=newJButton(submit);JButtonjb2=newJButton(cancel);JButtonjb3=newJButton(register);Propertiesp=newProperties();/服务器信息Socketsocket;booleanisreg=false;publicLoginFrame()/读取配置文件,连接服务器需要HelpTool.ReadServerConfig(p,.server.txt);System.out.println(p.getProperty(server)+p.getProperty(port);/设置窗体关闭事件jf1.addWindowListener(newWindowAdapter()publicvoidwindowClosing(WindowEventarg0)System.exit(1););设置发送密码验证按钮,首先读出用户输入的密码,然后根据用户名查询数据库,若查询到的密码与输入的密码一致,则登陆成功,否则登陆失败。jb1.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventarg0)try/创建Socket来发送验证信息if(!isreg)socket=newSocket(HelpTool.server_ip,HelpTool.port);14OutputStreamos=socket.getOutputStream();PrintStreamps=newPrintStream(os);ps.println(new:+jtf1.getText()+:+jtf2.getText();/等待服务器发送验证结果BufferedReaderbr=newBufferedReader(newInputStreamReader(socket.getInputStream();Stringresult=br.readLine();if(result.equals(right)/验证结果正确jf1.setVisible(false);MainFramemf=newMainFrame(socket,jtf1.getText();catch(UnknownHostExceptione1)e1.printStackTrace();catch(IOExceptione1)e1.printStackTrace(););jb2.addActionListener(newActionListener()/添加监听器publicvoidactionPerformed(ActionEventarg0)System.exit(1););jb3.addActionListener(newActionListener()/添加监听器publicvoidactionPerformed(ActionEventarg0)RegFramerf1=newRegFrame(getMyself();getMyself().jf1.setVisible(false););该模块实现了登陆功能,将已经注册的号存储在数据库中,在登录时进行与数据库数据的匹配操作,若匹配则成功登陆,若不匹配,则登陆失败。图6-1登陆界面156.2用户注册用户在注册获得账号和密码后,在登录界面填写用户名和密码并提交给服务器,服务器通过用户提交过来的信息和数据库中原有的用户信息进行比较和验证,如果结果一致表明验证成功,用户进入到客户端的系统界面下,如果不一致,给用户返回登录错误信息。本设计主要完成的是聊天模块,以及登录、注册模块,下面对其设计与实现进行详细的说明。界面图如下:publicclassRegFrame/注册窗口JFramejf=newJFrame();JPaneljp1=newJPanel();JLabeluserjl1=newJLabel(账号);J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论