毕业设计(论文)基于JAVA的ICQ系统_第1页
毕业设计(论文)基于JAVA的ICQ系统_第2页
毕业设计(论文)基于JAVA的ICQ系统_第3页
毕业设计(论文)基于JAVA的ICQ系统_第4页
毕业设计(论文)基于JAVA的ICQ系统_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、本科毕业论文(设计) 论文题目:论文题目: 基于 java 的 icq 系统 学生姓名: 专 业: 计算机科学与技术 班 级: 计本 0404 班 学 号: 指导教师: 完成日期: 20082008 年年 5 5 月月 2020 日日 基于 java 的 icq 系统 内 容 摘 要 在网络技术逐渐渗入社会生活各个层面的今天,传统的通信方式也面临着改革。借助于遍布 全球的 internet,世界各地的人们通过它可以方便的交流和更好的工作学习。采用网络通信将是 未来通信发展的趋势。因此我们开发了网络通信工具 icq。 本软件(icq 系统)是用 eclipse3.2sql 2000 的组合来开发

2、,其目的是在网络上实现信息 交流。通过对整个系统的分析后,将设计分为:开发计划、需求分析、系统设计与分析、编码、 测试、安装几个部分来完成,每个环节都有各自的意义与用途,其中系统设计与分析尤为重要。 界面设计也很通俗,只要对 windows 操作系统熟悉的人都能很容易地使用本软件。完成编码通过 多次的软件测试与确认后,确定此系统的可用性和适用性。 关键词: icq 网络 信息交流 system of icq based on java abstract seep into today that society live each level gradually in the network t

3、echnique, the traditional correspondence method also faces the reformation.ask for help from to spread all over the global internet, people of the world-wide locations pass it can then the convenient exchanges studies with the better work.the adoption network correspondence will be a trend that futu

4、re correspond by letter the development. therefore we developped the network correspondence tool icq. this software( the system of icq) is a combination to use the eclipse3.2+ sql 2000 to develop, its purpose realizes on the network information exchanges.pass to the analysis of whole system behind,

5、will design to is divided into:development plan, need analysis, system design and analysis, code, test, install several the part comes to completes, each link has each from of meaning and use, among them system design and analysis particularly for importance.the interface design is too very popular,

6、 as long as can use this software very easily to the person that the operate system of windows is familiar with.completing the coding passes the many software the test and after confirming, make sure this system can use the sex with the applicability. keywords: icq network information exchanges 目 录

7、序 言.1 一、绪论.2 (一)系统概述.2 1.icq 的构成.2 2.icq 的主要指标和分析.2 (二)系统的研究意义.3 (三)系统基本内容及技术方案.3 1基本内容.3 2主要功能.3 3技术方案.3 (四)开发环境.4 (五)论文各章节基本内容.4 二、系统规划 .5 (一)系统调查分析.5 (二)系统可行性分析.5 1.经济可行性分析.5 2.技术可行性分析.5 3.操作可行性分析.7 4.计划可行性分析.7 (三)系统需求分析.7 三、 系统设计 .8 (一)系统总体结构设计.8 (二)数据模块的流程图.9 (三)业务流图.9 (四)数据库的设计.11 1.数据库的需要分析.1

8、1 2.数据库概念结构设计.13 3.数据库逻辑结构设计.14 (五)系统开发与环境确定.14 1.开发环境的确定.14 2.系统的运行环境.15 3.系统实现的若干关键技术.15 四、icq 的主要模块.19 (一)服务器程序.19 (二)客户程序.19 (三)数据库.20 (四)主要的功能实现.20 五、用户使用手册 .28 (一)系统功能及运行环境简介.28 (二)系统运行与操作指南.28 六、系统评价 .29 (一)系统主要特色/优点介绍.29 1.使用方便.29 2.功能齐全.29 3.技术先进.29 4.实用性好.29 5.可扩展性好.29 (二)系统存在不足与改进方案.29 (三

9、)毕业设计心得与收获.30 七、结 论 .31 致 谢 .32 参考文献 .33 附 录 .34 序 言 随着世界互连网和电脑用户持续增长的今天,传统的通信方式也面临着改革。以前我们 与家人,朋友联系时会写信或者邮寄明信片等等,这样速度慢而且也不太安全。现在互联网 技术逐渐渗入社会生活各个层面,网络通信工具(icq)也应运而生。 icq 是一次革命,一个对用户友好的因特网工具,它随时通知您谁在线并使您能够按照 自己的意愿联络它们。 您将不用再徒劳地在网上查找朋友或伙伴。 icq 为您查找,并在他 们进入系统的同一时间通知您。 每次您想和某个具体的人交流都要查寻索引簿的行为不再 必要了。有了 i

10、cq,您可以闲谈、发送信息、文件和 url、玩游戏,或者在网上冲浪时与您 的网友共度时光。 因此,开发这样一套 icq 系统成为很有必要的事情,在下面的各章中我们将详细讲解一 套基于 java 的 icq 系统的开发过程和所涉及到的问题及解决方法。 一、绪论 java1-3是 sun microsystem 公司的 james gosling 开发的编程语言。它以 c+为基础, 但是却是一个全新的软件开发语言。java 是一个简单,面象对象,分布式,解释性,强壮, 安全,与系统无关,可移植,高性能,多线程和动态的语言-这是 sun 给 java 的定义。 sun 公司的口号就是网络就是计算机,

11、java 能使所有东西从桌面计算平稳的转变为基于网 络的计算,它是专门为此而建立的,并显然是为了完成这个任务而来的。使用 java,我们 可以相对轻松的一天编写一个有条理的网络程序。今天,java 的网络功能正在飞跃发展, 不断有新的特性增加到这个有价值的基础上,javasoft 实验室正在不断努力使 java 更加完 善。 (一)系统概述 icq 是英文i seek you 的简称,中文意思是我找你。icq 最大的功能就是即时信息交 流,只要记得对方的号码,上网时可以呼他,无论他在哪里,只要他上网打开 icq,人们就 可以随时交流。icq 源于以色列特拉维夫的 mirabils 公司。该公司

12、成立于 1996 年 7 月,也 就是在这个时候,互联网上最出名,下载使用人数最多的免费软件 icq 诞生了。可能是其不 断增加的用户和广阔的前景以及广泛的应用前景和巨大的市场潜力,mirabils 的 icq 最终 被美国在线 aol 收购。由于 icq 的成功,推动了 icq 的本土化,就中文的 icq 而言,现在已 经越来越多,比如著名的深圳腾迅公司推出的 oicq(现在由于版权问题,已改名为 qq2001), 还有由 tom.com 推出的 tomq 等,这些软件技术都很好,而且简单易用,成为中国网民最喜 欢的通信软件。 1icq 的构成 icq 由服务器程序、客户程序等部分组成。 (

13、1)服务器程序 服务器与客户间通过套接口 socket(tcp)连接。 (2)客户程序 客户通过 socket(inetaddress,port)6建立与服务器的连接。 2icq 的主要指标和分析 icq 的主要指标有响应时间、精确度、安全性等。这些指标决定了 icq 的技术指标。 icq 的技术指标决定了 icq 的开发是否成功。一个成功的 icq 应该具有较快的响应时间、较 高的安全性和较高的精确度等。 (1)响应时间:一方发送一条信息,另一方收到该信息的时间差 (2)精确度:一次搜索结果中符合用户要求的数目与该次搜索结果总数之比 (3)安全性:通话信息是否易被泄露 (二)系统的研究意义

14、千百年来,书信是人们相互联系、沟通信息和联络感情最主要的方式。历代文人墨客曾 用锦书、尺素、羽书、飞鸿等许多充满诗意的词语来描述书信。书信也是保存历史、唤起记 忆的一个重要方式。以往留存下来的许多信件,现在都已成为珍贵的历史文物和研究资料。 进入 20 世纪 90 年代,随着固定电话、移动电话、传呼以及互联网等更为先进快捷的通 讯工具的广泛使用,信件开始逐渐失去往日的辉煌。 沟通方式的多样化得益于信息业在近 10 年来的迅速发展。目前,信息产业已经成为国 民经济的一个支柱产业。此外,通信方式的日益现代化从侧面也反映出中国人生活节奏前所 未有地加快,工作效率开始得到提高。 在网络技术逐渐渗入社会

15、生活各个层面的今天,传统的通信方式也面临着改革,因此我 们开发了网络通信工具 icq。icq 最大的功能就是即时信息交流,只要记得对方的号码,上 网时可以呼他,无论他在哪里,只要他上网打开 icq,人们就可以随时交流。借助于遍布全 球的 internet,世界各地的人们通过它可以方便的交流和更好的工作学习。采用网络通信将 是未来通信发展的趋势。 (三)系统基本内容及技术方案 1基本内容 本系统是基于 java 的 icq 系统,主要是能够实现用户聊天,用户注册,添加好友,删 除好友,发送和接受信息等等基本功能 程序设计的基本要求是做到界面大方、友好,操作灵活、简单,功能强大,内容详实, 运行速

16、度快,安全性高,稳定性好。 2主要功能 本次毕业设计主要完成如下功能: (1)用户注册 (2)用户登录 (3)添加好友 (4)删除好友 (5)发送接受消息 3技术方案 开发一套系统早就不是一件新鲜的事了,现在有各种系统,有用 java 开发的,有用 vb 的,还有 php 开发的,本系统决定采用 java 技术,并结合 eclipse 和 sql server 数据库进 行开发。 (四)开发环境 本系统采用 windows xp professional + eclipse3.2 +jdk1.5+ sql server2000 为设 计环境进行开发. 操作系统是 windows xp prof

17、essional,开发技术是 java,编程工具是 eclipse3.2,数 据库是 sql server2000。 (五)论文各章节基本内容 最开始是系统的序言,主要是说明本系统的意义、目的、主要研究内容 第一章是绪论,在本章内对主要是阐述本系统的研究意义,基本内容,技术方案,开发 环境等等。 第二章是系统规划。主要是对系统的调查分析,从经济,技术,操作,计划方面来说明 本系统的可行性。 第三章是系统设计。主要内容是系统的总体结构设计,数据表等等,本章还包括数据模 型的设计以及系统的开发和具体运行环境的确定。 第四章是 icq 的主要模块。本章详细介绍了本系统所包含的三个模块,服务器程序模块

18、, 客户程序模块和数据库模块,介绍模块的时候同时配有图片和文字说明。 第五章是用户使用手册。主要内容有系统功能简介、运行环境简介,操作指南是对用户 如何使用本系统进行了详细的指导。 第六章是系统评介。主要内容是对本系统的特色和优点进行相关的介绍,同还还分析了 本系统存在的不足和进一步的改进方案,最后还对本次设计工作进行了一次总结。 论文的最后是结论,致谢以及参考资料等。 二、系统规划 (一一)系统调查分析 在系统的开发前期对系统进行可行性分析是十分必要的一个环节,这对于保证资源的合 理使用,避免浪费是十分必要的,也是项目一旦开始以后能顺利进行的必要保证。信息系统 的建设是一项投资大,时间长的复

19、杂工程,可行性研究更为必要,也更复杂,更困难。 “可 行性”是指在当前情况下,研制这个信息系统是否有必要,是否具备必要的条件。可行性的 含义不仅包括可能性,还包括必要性和合理性。 要问到网络时代发展最快的领域,无疑的,答案是通讯。通讯工具的实时交互、资费低 廉等优点深受用户的喜爱,已经成为网络生活中不可或缺的一部分,比如大家都很熟悉的腾 讯 qq,msn 等。网民们通过即时通信进行沟通交流、结识新朋友、娱乐消遣时间、实现异地 文字、语音、视频的实时互通交流。同时,人们也认识到通讯工具能够带来极高的生产力, 诸多企事业单位借助它的使用,来提高业务协同性及反馈的敏感度和快捷度。作为使用频率 最高的

20、网络软件,通讯软件已经突破了作为技术工具的极限,被认为是现代交流方式的象征。 在开发的前期进行各项调查的目的是明确系统的开发目标,是为了开发出一套适合大多 数人能够使用的软件。经过调查以后发现它具有以下特点: (1)通过注册可以得到唯一的 jicq 号码。 (2)登录成功时,显示你所有的好友;如果好友在线时,显示在线。 (3)强大的新人搜索功能 ,可以查看他们的资料,并可以加为好友;如果知道对方的 jicq 号码可以直接加为好友。 (4)当你上线或离开时 icq 会提醒你的朋友们。 (二)系统可行性分析 1.经济可行性分析 开发一个全新的软件是一项艰巨复杂的工作,它的投资主要是人力以及物力的投

21、资。对 于本系统来说,研究和开发本系统的主要目的是对我们所学知识一个综合性的考察,主要的 投资也就是在硬件配置和软件平台上,因此新系统的实施不需要什么大的资金投入。 网络通信软件 icq 的开发,使得我们可以更方便的与亲朋好友交流,这必将提高我们学 习和工作的效率,让我们在工作和学习中有更出色的表现,因此在经济方面该系统可以进行开 发。 2.技术可行性分析 (1)java sun 公司的口号就是网络就是计算机,java4能使所有东西从桌面计算平稳的转变为 基于网络的计算,它是专门为此而建立的,并显然是为了完成这个任务而来的。使用 java,我们可以相对轻松的一天编写一个有条理的网络程序。今天,

22、java 的网络功能正在 飞跃发展,不断有新的特性增加到这个有价值的基础上,javasoft 实验室正在不断努力使 java 更加完善。 (2)eclipse3.2 eclipse是一个开放源代码的,基于java的整合型可扩展开发平台。eclipse 最初是替代由ibm公司开发的价值4千万美金的商业软件visual age for java的下一代ide开 发环境。2001年11月交给非营利软件供应商联盟eclipse基金会(eclipse foudation)管理。 2003年,eclipse3.0选择osgi服务平台规范为运行时架构。 eclipse采用的技术是ibm公司开发的(swt),

23、这是一种基于java的窗口组件,类似于 java本身提供的awt和swing窗口组件;不过ibm声称swt比其他java窗口组件更有效率。就其 本身而言,它只是一个框架和一组服务,用于插件组件构建开发环境。幸运的是,eclipse 附带了一个标准的插件集,包括java开发工具(java development toolsm,jdt) 。 虽然大多数用户和乐于将eclipse当作javaide来使用,但eclipse的目标不仅限于此。 eclipse还包括插件开发环境(plug-in development environment,pde) ,这个组件主要针 对希望扩展eclipse的软件开发人

24、员,因为它允许他们构建与eclipse环境无缝集成的工具。 由于eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人 员都具有同等的发挥场所。 本系统采用的是eclipse3.2中文版。 (3)sql2000 完全支持 web.通过 web 可以查询、分析和处理数据。在 sql server 20008-9 中使 用可扩展标记语言 (xml) 可以在松散耦合系统之间交换数据。从浏览器通过防火墙可方便 而安全地访问数据,并可对有格式文档执行快速全文检索。分析和链接联机分析处理 (olap) 多维数据集,即使在 web 上也是如此。执行点击流分析,以了解 web 用户

25、的情况。 高度可扩展性和可靠性.使用增强的可扩展性和可靠性功能,可无限制地扩容。分散 数据库工作负荷以获得应用程序的扩展。充分利用对称多处理 (smp) 硬件,并与 microsoft windows 2000 datacenter 一起使用。服务器操作系统最多可支持 32 个 cpu 和 64 gb 的 ram。 对市场的快速反应能力.快速构建、部署和管理电子商务、各种业务和数据仓库解决 方案。对用户数据和财务数据进行深入的数据挖掘。使用集成的 t-sql 调试程序可缩短开 发时间,并可开发在不同应用程序中可重复使用的自己的功能。sql server 2000 提供了 web 应用程序开发的

26、捷径。 而且,在最后发布之前.sql server 2000 发布了面向世界的标准测试程序,使其竞争 对手在多平台方面的表现大为逊色。 3.操作可行性分析 一个好的界面设计往往会给人很舒服的感觉,像我们熟悉的腾讯 qq,该软件设计的简洁 大方,上面小企鹅更是经典之作,所以我在设计的时候参考了腾讯 qq 的界面,争取作到实用性 和简洁性并重。我设计的这个网络通信软件界面简洁,给人的第一感觉就很清爽,而且具体 的操作实施也很人性化,使用简单方便,能大大提高用户工作效率,为其节约不少不必要的 开支。因此,该系统的开发具有操作可行性。 4.计划可行性分析 本次系统的开发预备在 1 月之内完成全部的工作

27、。由于系统所用语言及开发工具我之前 接触过,所以对与我来说难度并不是很大,如果碰到技术上的难题,可以上网查找或者求助 于指导老师,尽最大努力做出让自己和老师都满意的系统。 (三)系统需求分析 进行数据库设计5首先必须准确了解与分析用户需求(包括数据与处理) 。需求分析是 整个设计过程的基础,是最困难,最耗费时间的一步。作为地基的需求分析是否做得充分与 准确,决定了在其上构建数据库大厦的速度与质量。需求做得不好,是指会导致整个数据库 设计返工重做。 确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。 这些需求包括:功能需求,性能需求,环境需求,可靠性需求,安全保密需求

28、,用户界面需求, 资源使用需求,软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。 通过分析我们得出:本系统主要包括用户注册,用户登录, 用户添加好友, 用户删除好 友,用户发送和接收消息等。用户的基本情况记录在 sql server 2000 数据库里,方便用户 的登录和查询。用户注册:当服务器收到用户的注册请求,便开始接受客户传递的信息,诸 如客户的呢称啦,性别,籍贯,头像,个人资料等;用户登录:在客户端,用户输入其 jicq 号码和密码,然后建立与服务器的连接;用户添加好友:客户登录后,按查找按钮后, 开始向服务器发出查找请求;用户删除好友:用户在其好友列表中选择要删除的好友并

29、按删 除;发送和接收消息:用户通过在好友列表里的好友的 ip 地址,通过 udp 与其他用户进行信 息交流。 3、系统设计 (一)系统总体结构设计 本系统由三个子模块组成: 数据库设计、服务器程序、客户程序. 要求该系统能够实现 icq 的实时聊天. 完成系统的 icq 功能,包括各种界面的编写;服务器和数据库的连接,客 户机与服务器的 tcp 连接,客户机之间的 udp 连接;服务器通过 jdbc 和后台数据库连接等。 jdbc-odbc socket(tcp) socket(tcp) socket(tcp). . udp udp udp . 图 3l 整个系统的结构框架采用客户/服务器摸式

30、 后台数据库 sql server2000 服务器 客户客户 客户 (二)数据模块的流程图 登陆请求数据 回现信息 通过验证 发信息 图 3-2 数据模块的流程图 (三)业务流图 服务器 客户 建立连接 发出注册请求 发送昵称性别 个人资料等 执行数据库添加 返回用户的号码, 并在数据库注册用 得到 jicq 号码 户的 ip 地址等消息 信息处理 用户登陆 收 消 息 收 消 息 息 其他用户 用户收发信息 后台数 据库 serversocket socket accept out new in new out information in information 数据库 发送完毕 停止接受

31、 jicqno 结束 out jicqno 打开主程序并创建 udp 结束 图 3-3 业务流图 (四)数据库的设计 1.数据库的需要分析 数据字典15也常称为数据目录或系统目录,它通常是一系列表,它存储着数据库中有 关信息的当前描述,包括数据库三级模式、数据类型、用户名表、用户权限、程序与其用户 联系等有关数据库系统的信息,起着系统状态目录表的作用,它能帮助用户、数据库管理员 和数据库管理系统本身使用和管理数据库。 通过数据库的需求分些后,设计如下面所示的数据项: 数据项的编号:a01-01 数据项的名称:icqno 数据项的别名:无 数据项的简述:用户的号码 数据项的类型:int 数据项的

32、长度:20 个字节 数据项的编号:a01-02 数据项的名称:nickname 数据项的别名:无 数据项的简述:用户的呢称 数据项的类型:char 数据项的长度:20 个字节 数据项的编号:a01-03 数据项的名称:password 数据项的别名:无 数据项的简述:用户的密码 数据项的类型:char 数据项的长度:20 个字节 数据项的编号:a01-04 数据项的名称:status 数据项的别名:无 数据项的简述:用户在线否 数据项的类型:bit 数据项的长度:4 字节 数据项的编号:a01-05 数据项的名称:ip 数据项的别名:无 数据项的简述:用户的 ip 地址 数据项的类型:char

33、 数据项的长度:20 个字节 数据项的编号:a01-06 数据项的名称:info 数据项的别名:无 数据项的简述:用户的资料 数据项的类型:varchar 数据项的长度:100 个字节 数据项的编号:a01-07 数据项的名称:pic 数据项的别名:无 数据项的简述:用户的头像号 数据项的类型:int 数据项的长度:20 个字节 数据项的编号:a01-08 数据项的名称:sex 数据项的别名:无 数据项的简述:用户性别 数据项的类型:char 数据项的长度:4 个字节 数据项的编号:a01-09 数据项的名称:email 数据项的别名:无 数据项的简述:用户的 email 数据项的类型:cha

34、r 数据项的长度:40 个字节 数据项的编号:a01-10 数据项的名称:place 数据项的别名:无 数据项的简述:用户的籍贯 数据项的类型:char 数据项的长度:40 个字节 数据结构的编号:b01-01 数据结构的名称:icqno 数据结构的简述:用户的号码 数据项的类型:int 数据项的长度:20 个字节 数据结构的编号:b01-02 数据结构的名称:friend 数据结构的简述:好友的号码 数据项的类型:int 数据项的长度:20 个字节 2.数据库概念结构设计 根据上述的数据项,我们设计出各种实体,以及它们之间的关系,这些实体包含各种具 体信息,通过相互之间的作用形成数据的流动。

35、实体之间的关系图描述如下: 图 3-4 e-r 图 用户 朋友 朋友 好友的号码 昵称 性别 email 籍贯 用户信息 3.数据库逻辑结构设计 逻辑结构设计的任务就是把概念结构设计阶段设计好的基本e-r图转换为关系数据库中 的各种表。各个表格的设计结果如下: 表3l 用户的基本信息表(表名icq) 其中 icqno 字段为自动增加。 (其他还可以添加诸如电话号码等字段作为更多选择) 表 32 用户的好友表(表名 friend) 序号字段名含义数据类型是否为空 1icqno 用户的号码 intno 2friend 好友的号码 intno (五)系统开发与环境确定 1. .开发环境的确定 本系统

36、采用 windows xp professional + eclipse3.2 +jdk1.5+ sql server2000 为设 计环境进行开发. windows xp 其实是 windows nt 的最新版本,其实 windows 操作系统按照内核划分为 win 9x 系列和 win nt 系列,我们常用的 windows xp 就属于 win nt 系列。一般说来, windows 95 和 windows nt 已经被淘汰,现在主要是用的是 windows xp、2000、2003。微软 最初发行了两个版本:专业版(windows xp professional)和家庭版(windo

37、ws xp home edition) 。前者主要面向专业用户,后者面向家庭。本系统采用的 windows xp professional。windows xp 是专为各种桌面计算机和便携机开发的新一代操作系统。它继 承了 windows nt 的先进技术,提供了高层次的安全性、稳定性和系统性能。同时,它帮助 序号字段名含义数据类型是否为空 1icqno 用户的号码 intno 2nickname 用户的呢称 charno 3password 用户的密码 charno 4status 用户在线否 bitno 5ip 用户的 ip 地址 charyes 6info 用户的资料 varcharye

38、s 7pic 用户的头像号 intyes 8sex 用户性别 charyes 9email 用户的 email charyes 10place 用户的籍贯 charyes 用户更加容易地使用计算机、安装和配置系统、脱机工作和使用 internet 等。对于电脑和 网络系统的管理员而言,windows xp 是一套更具有可管理性的桌面系统,无论是部署、管 理还是为它提供技术支持都更加容易这意味着更低的总体拥有成本。 jdk 是个开发环境,刚开始接触 java 的时候觉得 java 虚拟机很麻烦,不明白 jre 和 jdk 的区别,现在明白了 jdk 是运行环境,jre 是开发环境。因此写 jav

39、a 程序的时候需要 jdk,而运行 java 程序的时候需要 jre。而 jdk 里面已经包含了 jre,因此对 java_home 设 置为 jdk 的路径时也可以正常运行 java 程序。 eclipse3.2 速度快,效率高。组件功能更强大,并带有非常强大图形编辑功能,支持 可视化的 applet,swing,awt 等图形组件的开发。支持 ejb3.o,支持 uml2.0,并带有 uml2.0 模型编辑器。不像 3.0 一定需要 jdk5.0 的 jre,它只需要 jdk1.4.1 以上就可以了。 eclipse 是一款免费的 ide,它支持 java 和 c/c+开发,非常方便与便捷

40、,有强大而灵活扩 展的插件功能,目前 borland 也加入该社团的开发,因此我们相信 eclipse 将成为 ide 的佼 佼者。 完全支持 web.通过 web 可以查询、分析和处理数据。在 sql server 2000 中使用 可扩展标记语言 (xml) 可以在松散耦合系统之间交换数据。从浏览器通过防火墙可方便而 安全地访问数据,并可对有格式文档执行快速全文检索。分析和链接联机分析处理 (olap) 多维数据集,即使在 web 上也是如此。执行点击流分析,以了解 web 用户的情况。 2. .系统的运行环境 硬件环境: 服务器端:cpu 为 p3 800m,内存为 128m,硬盘为 2

41、0g 客户端: intel pentium iii 以上的微机 软件环境: (1)服务器端: a.使用语言:java b.数据库:sql server 2000 c.操作系统为:windows xp (2)客户端 操作系统:基本支持目前所有的操作平台,推荐使用 windows 平台。 3.系统实现的若干关键技术 javaicq主要设计到了java的网络编程和图形界面的设计以及于数据库的交互等等java 知识。 (1)java的网络编程的介绍 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程 中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主

42、机 后如何可靠高效的进行数据传输。在tcp/ip6协议中ip层主要负责网络主机的定位,数据传 输的路由,由ip地址可以唯一地确定internet上的一台主机。而tcp层则提供面向应用的可 靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心ip层是如何处理 数据的。 目前较为流行的网络编程模型是客户机/服务器(c/s)结构。即通信双方一方作为服 务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作 为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客 户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。 (2)基于s

43、ocket12-14的低层次java网络编程 本系统采用的基于socket课题的低层次网络编程。 网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个 socket。socket通常用来实现客户方和服务方的连接。socket是tcp/ip协议的一个十分流行 的编程界面,一个socket由一个ip地址和一个端口号唯一确定。 在传统的unix环境下可以操作tcp/ip协议的接口不止socket一个,socket所支持的协议 种类也不光tcp/ip一种,因此两者之间是没有必然联系的。在java环境下,socket编程主要 是指基于tcp/ip协议的网络编程。 socket

44、通讯的一般过程 使用socket进行client/server程序设计的一般连接过程是这样的:server端listen(监 听)某个端口是否有连接请求,client端向server端发出connect(连接)请求,server端向 client端发回accept(接受)消息。一个连接就建立起来了。server端和client端都可以通 过send,write等方法与对方通信。 对于一个功能齐全的socket,都要包含以下基本结构,其工作过程包含以下四个基本的 步骤: (1) 创建socket; (2) 打开连接到socket的输入/出流; (3) 按照一定的协议对socket进行读/写操作;

45、 (4) 关闭socket。 这是整个系统的难点,socket的编程不是特别容易,尤其是涉及了多线程之间的通信。 (3)图形界面的设计 swing是一个用于开发java应用程序用户界面的开发工具包。它以抽象窗口工具 (awt)为基础使跨平台应用程序可以使用任何可插拔的外观风格。swing开发人员只用很少 的代码就可以利用swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 java的基础类(jfc)是开发图形用户界面的api集。java的基础类包括以下api: swing组件。 可访问性api。 抽象窗口工具包(abstract window toolkit,awt)是java开发用户

46、界面最初的工具包。 awt是建立jfc的主要基础, java 2图形设计,卷:awt对awt有详细的介绍。 swing是建立在awt之上的(参见1.2节“轻量组件与重量组件的比较”中对轻量组件与重 量组件比较的讨论)、包括大多数轻量组件的组件集。除提供了awt所缺少的、大量的附加组 件外,swing还提供了替代awt重量组件的轻量组件。swing还包括了一个使人印象深刻的、 用于实现包含插入式界面样式等特性的图形用户界面的下层构件。因此,在不同的平台上, swing组件都能保持组件的界面样式特性,如双缓冲、调试图形和文本编辑包等。 这一部分界面的设计并不是很难,关键是美观度,界面的大小不好调整

47、。 (4)数据库的交互 主要是使用jdbc技术。jdbc是java的开发者sun的javasoft公司制定的java数据库 连接(java data base connectivity)技术的简称,是为各种常用数据库提供无缝联接的技 术。jdbc在web和internet应用程序中的作用和odbc在windows系列平台应用程序中的作用类 似。odbc(opendata base connectivity),称为开放式数据库互联技术,是由microsoft公 司倡导并得到业界普遍响应的一门数据库连接技术,如果读者有使用odbc编程的经验,就会 发现jdbc与odbc很类似。jdbc现在可以连接

48、的数据库包括: xbase、oracle、sybase、aceess以及paradox等。 本软件主要是登录的时候,从数据库读取数据,检查登录的用户名和密码时不时正确; 注册的时候,在数据库中插入一条数据;添加好友的时候,从fried表中插入一条数据;删 除好友的时候,从fried表中删除好友的jicq号码,就是删除了一条数据,这都是与数据库 的操作,这些都是从java程序中读取数据库中的数据,怎么实现这一功能,就是靠的jdbc技 术,可见这是完成本系统的关键环节。 本系统采用的是jdbc-odbc桥连接数据库。主要是要从管理工具中配置相应数据库的数 据源。 (5)sql server 200

49、0知识的运用 sql server7 是一个关系数据库管理系统。是microsoft 公司推出的sql server 数据 库管理系统的新版本。该版本继承了sql server 7.0 版本的优点,同时又比它增加了许多 更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。可跨越从运行 microsoft windows 98 的膝上型电脑,到运行microsoft windows 2000 的大型多处理器的 服务器等多种平台使用。 sql server 2000 的常见版本 企业版(enterprise edition) 支持所有的sql server 2000 特性,可作为大

50、型web站点、企业oltp(联机事务处理) 以及数据仓库系统等的产品数据库服务器。 标准版(standard edition) 用于小型的工作组或部门 个人版(personal edition) 用于单机系统或客户机 开发者版(developer edition) 用于程序员开发应用程序,这些程序需要sql server 2000 作为数据存储设备。 此外,sql server 2000 还有桌面引擎(desktop engine) 和windows ce 版。用户可 以根据实际情况选择所要安装的sql server 2000 版本。 本系统采用的sql server 2000 个人版。因为上

51、学期学过数据库原理,所以在使用sql server来建库,建表来说,并不是很难。 本软件主要是登录的时候,从数据库读取数据,检查登录的用户名和密码时不时正确; 注册的时候,在数据库中插入一条数据;添加好友的时候,从fried表中插入一条数据;删 除好友的时候,从fried表中删除好友的jicq号码,就是删除了一条数据,这都是与数据库 的操作,当然会用到jdbc技术,但是基本的sql语句,如增删改查都要会;例如从数据库中 查找数据,select 字段名 from 表名 where 条件;等等都是最简单的sql语句。 本系统还会用到数据库的备份等等或者是分离数据库,附加数据库等。这些内容都是必 须

52、要掌握的,这样才能更好的运行本系统。 四、icq 的主要模块 (一)服务器程序 服务器与客户间通过套接口 socket(tcp)连接。在 java 中使用套接口相当简单,java api 为处理套接口的通信提供了一个类 .socket.,使得编写网络应用程序相对容 易服务器采用多线程以满足多用户的请求,通 jdbcc 与后台数据库连接,并通过创建一个 serversocket 对象来监听来自客户的连接请求,默认端口为 5678,然后无限循环调用 accept()方法接受客户程序的连接 如果申请 icq 号码,服务器就会处理客户的新建请求,准备接受用户的呢称,密码, email,个人资料,籍贯,

53、头像等信息。然后数据库添加客户其注册的号码,新建用户结束。 如果是登录,连接数据库,准备从数据库中选择呢称和密码。数据库查寻输入的 jicq 号码,输入的密码执行数据库查寻比较输入的号码与密码是否相同。如果相同就告诉客户 ok,并且更新数据库用户为在线以及注册用户的 ip 地址,否者告诉客户失败登录结束。 用户查找好友,连接数据库,并且返回其他用户的呢称,性别,籍贯,个人资料等信息 以及返回用户的 jicq 号码,头像号,及是否在线,查找好友结束。 用户登录时读取其好友资料,连接好友表,返回用户的好友名单。告诉客户其好友的呢 称,号码,ip 地址,状态,头像,个人资料等信息。 用户添加好友,连

54、接数据库,根据接受的用户号码及好友号码向好友表添加记录用户添 加好友。其他用户如果加我,我就加他。连接数据库,根据接受的用户号码及好友号码向好 友表添加记录。如果成功,就向用户传递好友的基本信息,比如呢称等。 用户删除好友,连接数据库,根据接受的用户号码及好友号码向好友表删除记录 用户退出程序,连接数据库,根据接受的用户号码,将其状态字段设为 0,及 ip 地址 设为空 那些人加了我为好友,以便上线通知他们,连接数据库,根据我的号码,从好友表中选 择谁加了我,然后告诉这些好友的 ip 地址,然后发给用户以便告诉其他客户我上线了。 (二)客户程序 客户通过 socket(inetaddress,

55、port)建立与服务器的连接。服务器与客户都通过构造 bufferedreader,printwriter 来建立输入输出流,然后双方通过该输入输出流来相互传递 信息,一旦收到客户方的连接请求,服务器 accept()方法返回一个新建的 socket 对象。客 户端然后向服务器发送消息,比如注册,登录,查找好友等,服务器收到来自客户的请求后, 针对不同的消息处理请求, 虽然 udp 不可靠但是对于 icq 可靠性并不太重要,而且 udp 快速, 所以客户间发送信息通过 udp。用户登录时通过类 datagrampacket 和 datagramsocket 创建 udp 包括其本地接受端口以及

56、发送端口,默认端口为 5000 和 5001,通过取得的好友的 ip 地 址来向好友发送消息(send(datagrampacket)和接受消息(receive(datagrampacket)。当 用户通过 udp 收到消息后,可以通过 datagrampacket 的方法 inetaddress getaddress()得 到对方的 ip 地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户 选择该用户查看消息,如果好友列表没有该人就显示收到陌生人的消息。用户可以按陌生人 按钮查看消息。 1.用户注册。当服务器收到用户的注册请求,便开始接受客户传第的信息,如 客户的呢称啦,性

57、别,籍贯,头像,个人资料等,接受完毕后,便通 jdbccodbc 与后台数据 库连接,然后向数据库添加记录,如果成功,便向客户返回其 jicq 号码,并在数据库中注 册用户的 ip 地址,然后更新其 status 为 1 即用户在线。客户收到服务器返回的信息后,便 打开主程序窗口,并同时开始创建 udp 以便在用户之间建立联系。 2.用户登录。在客户端,用户输入其 jicq 号码和密码,然后建立与服务器的连接,告 诉服务器我要登录,服务器收到后,开始通 jdbccodbc 读取数据库,然后与用户输入的信息 比较,如果相同就向客户返回成功消息并将其 status 字段设为表示上线了以及注册其 i

58、p 地址,否则返回错误,如果客户收到成功信息就打开主窗口,否则提示出错。如果成功,便 打开主程序窗口,并同时开始创建 udp 以便在用户之间建立联系。然后客户向服务器请求读 取好友名单,服务器收到该请求,开始读取数据库中的 friend 表,得到好友的号码后,再 在 icq 表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友, 比如头像,呢称。并且建立几个矢量(vector)用以存储好友的呢称,jicq 号码,头像编 号,ip 地址等信息。 (三)数据库 系统可以采用任何一种流行的,java 支持的数据库,本系统采用了 microsoft 公司的 sql server20

59、00 作为后台数据库。通过对现在流行的一些 icq 的参考,建立数据库,名为 javaicq,数据库共建立两个表,一个是用户的基本信息,包括呢称,jicq 号码等。一个是用 户的好友表,包括用户自己的号码和好友的号码。 (四)主要的功能实现 图 4l sql server2000 的 friend 表 图 42 配置 odbc 数据源 javaicq 用 jdbc-odbc11连接数据库的代码如下: class.forname(sun.jdbc.odbc.jdbcodbcdriver);/用 odbc 桥连接数据库 connection c=drivermanager.getconnectio

60、n(jdbc:odbc:javaicq,sa,); /加载驱动,其中 javaicq 是要连接的数据库,后面的是用户名和密码 string sql=select nickname,password from icq where icqno=?; /sql 语句 preparedstatement prepare=c.preparestatement(sql);/设定数据库查寻条件 string icqno=in.readline(); int g=integer.parseint(icqno);/取得输入的 jicq 号码 system.out.println(icqno); string p

温馨提示

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

评论

0/150

提交评论