毕业设计论文基于java的CS模式网络聊天室的毕业设计

上传人:a**** 文档编号:164079339 上传时间:2022-10-24 格式:DOC 页数:36 大小:812KB
返回 下载 相关 举报
毕业设计论文基于java的CS模式网络聊天室的毕业设计_第1页
第1页 / 共36页
毕业设计论文基于java的CS模式网络聊天室的毕业设计_第2页
第2页 / 共36页
毕业设计论文基于java的CS模式网络聊天室的毕业设计_第3页
第3页 / 共36页
点击查看更多>>
资源描述
题目: 基于java的C/S模式网络聊天室的设计目 录摘 要IABSTRACTII1 绪 论11.1 聊天室的开展11.2 即时通讯的应用2各类通讯软件的介绍和比较32 实现聊天室的相关技术及环境72.1 Java概述72.2 TCP/IP协议常识9系统开发工具与开发环境11开发工具11开发环境113 网络聊天系统的系统设计12工程概述12功能需求12系统建摸133.4 聊天室系统的设计143.4.1 聊天系统工作原理图14系统实现原理15系统的设计过程15数据封装设计184 聊天系统的实现及测试19系统用户界面设计19客户端界面19效劳器界面21系统设计22客户端结构22效劳器端结构23客户端功能实现的测试24参考文献31致 谢32摘 要网络聊天室是一种应用广泛网络聊天方式,操作简单,功能丰富,是教学和学习面向对象的编程思想的理想工程。可以使用多种编程语言设计和开发出功能完善的网络聊天室。 本毕业设计介绍Java语言设计与实现一个网络聊天室过程,本系统采用C/S构架设计,整个工程分为效劳器端和客服端。使用了新的Java2标准Swing组件,开发出简洁美观和布局合理的用户和效劳器界面;利用Socket网络开发技术实现客户端和效劳器端的连接访问,实现网络功能;通过数据流操作的合理设计,实现信息传递、接收和数据保存。同时,采用多线程、多任务的 设计思想,开发出性能稳定,功能全面的效劳器。完整的实现系统的功能。 通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创立和开发工程,从而完成系统的完整开发。 关键字:聊天室;Java;Socket; C/S ;UDP;多线程AbstractThe network chat room is a kind of applied extensive network chat method ,operate in ease and the function is abundant, It can be used as a good case for learning of java design language and the Object-Oriented Programming language, there is many programming language of design to develop a network chat room with perfect function.This graduation thesis of design introduction how to use the java language design and carry out network chat room, the system adoption the C/S structure design, the whole system is divided into the server and client. Use standard modules of Swing of latest java2, develop a simple and direct beauty user interface, We make use of the Socket technology to interconnect the server and client by net-work; organize the data by good design of data stream to sent or accept the message between users and to record the message for ever, we also use the multi-thread multi-action to make the program with many function.I have leaned many method and things to use the Object-Oriented programming. And make me know how use the development environment Eclipse to new program and the process to make the program.Key Words: ChatRoom; Java; Socket; C/S;UDP; multi-thread1 绪 论网络技术是计算机领域中开展最为迅速的技术之一,它在政治、经济、生活等各个方面发挥着十分重要的作用。随着计算机网络的普及和推广,将会有越来越多的人利用网上资源,享受不断开展和完善的网络效劳,以此来提高工作效率和水平。随着我国经济开展和网络的普及,网络技术也越来越多地被应用于日常工作之中。在程序设计领域,面向对象的编程技术正在逐步代替面向过程的程序设计技术,成为计算机应用设计开发的主流,尤其在网络技术开发中,面向对象的Java语言编程和相关的Java技术正在以前所未有的速度开展。网上购物、网上银行、远程教学、网络聊天、网络游戏等都开始使用Java技术。而且Java使平台无关性的思想成为现实,独立的Java程序可以被编译为与平台无关的字节码,这种字节码可以运行在任何拥有Java解释器的机器上。 真正降低了企业成品和程序员的负担。 随着信息科学的进步与互联网络的开展,虽然通过网络的聊天软件很多,但针对于内部系统的、局域网内的聊天和公司内部的上下级沟通的聊天通讯软件却很少。所以开发一个此类型的即时通讯系统就变得非常有意义了。而在技术选择上Java技术自然成为实现此系统的首选。 1.1 聊天室的开展聊天室做为即时通讯的一种,即时通讯Instant Messenger,简称IM软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯QQ,以及微软的MSN Messenger都是群众关注的焦点,它们能让你迅速地在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。 IM软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱,并风行全球。在它的开展史上,以色列人是功不可没的。正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你“I Seek You,简称ICQ了。直到现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。 目前,国内最为流行的即时通讯软件是OICQ简称QQ。它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。作为Windows XP的一局部,Messenger 整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视,此外还有许多有特点的IM软件。 1.2 即时通讯的应用 即时通讯软件除了可以实时交谈和互传信息,不少还集成了数据交换、语音聊天、网络会议、电子邮件的功能。下面介绍的即时通讯软件的主要应用功能: 文字聊天 聊天功能是IM软件最根本、也是最重要的功能,根本上每一种IM软件在这个功能上的操作都差不多:如果用户想与联系人进行聊天,可以双击IM中联系人的头像,在弹出的对话框中敲入文字信息发送即可。QQ的特点是可以给不在线的朋友发送信息,对方下次上线的时候可以收到,MSN虽然不具备这样的功能,但是它在聊天过程中可以使用各种漂亮的表情图标为聊天添加了不少情趣。 语音聊天 如果打字聊天的方式已不能满足,QQ还提供了“二人世界里的实时语音聊天,首先您得有音箱或者耳机、麦克风,然后就可以向您的网友发送连接到“二人世界的请求,通过后双方不仅可以用文字聊天,还可以直接讲话。此外QQ还有传送语音功能利用此功能可以传送语音信息。首先用鼠标左键单击在线好友的头像,选择“传递语音命令,然后就会弹出一个对话框,录音以后就可以发送了。 传送文件 IM软件能点对点的传输文件,有时候利用此功能要比使用E-mail还方便许多,当然此项功能必须在对方在线时才能使用。在QQ的好友头像上点击右键,选择“传送文件,选定要传送的文件,点击发送,等待对方接受请求。此外,ICQ的文件传送功能还支持类似断点续传的功能,不必担忧文件传送过程中发生突然中断的情况。 拨打 在MSN Messenger中提供了PC-PHONE的拨打 功能,你可以在MSN Messenger软件主窗口中,单击操作窗口“我想下面的“拨打 或者用鼠标右键单击要呼叫的人的名字,单击“拨打 ,就可以开启拨叫 功能。但在进行 呼叫之前必须注册语音效劳提供商。由于MSN Messenger在国内暂时还没有开通这项业务,所以我们还无法使用。 远程协助 远程协助是在Windows XP中引进的新概念,是Windows Messenger独有的功能,远程协助可以将电脑的控制权分享给对方以便于对寻求协助者提供帮助,通过它,对方可以很容易地控制寻求协助者的桌面。它的功能主要表达在应用程序共享、远程协助、白板共享、寻求远程协助等方面。由于这一功能非常强大,在寻求协助的过程中系统会屡次提醒并给出选择,请用户在使用这一功能时多加小心,确认对方是否可靠。 视频聊天 如果你的网速够快,又有摄像头的话,完全可以用IM软件来代替掉Netmeeting了,在聊天的同时,不仅可以通话,还可以看到对方的图像,表情,备感亲切,给您带来一份全新的感受。Windows Messenger对视频聊天功能支持的不错,设置和使用也非常简单,右击好友中“开始视频对话就完成操作,非常方便。 邮件辅助 IM和E-mail是我们在网上最常用的两种工具,如今不少IM软件将两者作了完美的结合。在QQ中你可以直接给自己的好友发邮件,而无须再输入E-mail地址;此外对于自己的信箱QQ还有检查新邮件功能,在“系统参数中设置您自己的E-mail,填好POP3地址,您可以选择定时检查时间,QQ就会自动检查有否新邮件到达。对于MSN Messenger来说它的邮件功能就更强大了,使用MSN Messenger你必须有一个邮件账号,每次当您的MSN Messenger登录成功时,在右下角自动弹出一个窗口,里面写有该E-mail账户内的信件状况,在使用过程中如果您的邮箱中有了新邮件,马上会冒出一个提示窗。 发送短信 目前IM与各种移动终端设备的结合也越来越多。使用QQ向 发送短信需要 开通移动QQ效劳,单击对方头像图标,在翻开的快捷菜单中选择“ 短讯命令,在翻开的对话框中输入信息,然后点击发送即可完成,这时对方的 就可以收到一个消息。给BP机发短讯也是一样,不过对方的BP机效劳台必须是QQ所支持的情况下才行。当对方的 收到你发来的短信后还可以回复,这时候您的QQ会弹出“查看 短讯的窗口来,非常方便。 浏览咨询 有的朋友上网只是使用QQ聊天,其实用QQ也可以很方便的看到每日最新的新闻。点击QQ面板中的“资讯通按钮,瞧,“资讯通已经为您订制好新闻啦:“新闻、“IT科技、“证券、“体育、“娱乐共十二大类新闻信息。你愿意看哪方面的新闻,就点击相应的图标,那么出现“资讯通界面,自动提取出当日新闻标题。通过这些标题,你可以快速地选择出自己感兴趣的新闻,点击之就可以调用浏览器读取了。这样您就可以足不出户阅读有关内容,节省了您的查找时间、提高了浏览效率。 各种即时通讯软件,真可谓“尺有所短,寸有所长!ICQ功能最强大,全球用户最多,但是设置比较复杂,而且没有中文版本;MSN有着和Windows系统紧密结合的优点;QQ那么依托自己强大的本地优势,在国内即时通讯软件中抢占了先机。“小企鹅与“巨人新星 1、即时消息的发送 这是作为即时通讯软件的最根本的功能。从发送消息的长短来看:QQ一次最多可发送450个汉字,而MSN最多也只有 400 个字符200个汉字;同为中文界面的QQ与MSN,却采用了完全不同的设计思路。从界面上来看,QQ采用“对话模式和“普通模式两种如图1。而MSN中只有一种方式。对于用惯了QQ的网友来说,可能会将一句并没说完的话发送出去,而按下“Ctrl+回车仅仅是起换行作用。从发送字符格式的控制上,MSN无疑是占尽上风,不仅支持字体、字号大小以及字色的设置,这一点普通网友或许并不多用,但MSN能够将诸如“:)之类的图示符号自动转换为“笑脸等表达心情和表情的图形,这点功能确实是非常棒的一种设计。 2、记录的保存和再现 这一点是QQ的强项。几乎不用做任何动作,与所有网友的聊天记录都被完整地保存,只要你不去清理它,完全可以把两年前与MM聊天时MM的承诺重现在MM面前,不怕MM不招!呵呵。而MSN在这点上是先天的缺陷。要想保存,就自己一边聊一边慢慢地“Copy吧。 3、用户的注册和好友的添加 由于腾讯的用户量急剧增加,使得QQ的新用户ID申请变得异常困难。腾讯转而向移动通讯用户开放这一通道,尽管在功能的延伸方面取得了成功和突破,却因此也“激怒了广阔的网友!同时,添加好友异常方便,也使得我们自己的QQ上经常无端地收到许多莫名其妙的广告或垃圾信息以及一些“不受欢送的网友的“入侵!而MSN与众不同的注册设计,加上Hotmail和MSN 两大免费邮箱的隆重推出,使得我们的MSN可以非常清静! 4、其他功能比较 QQ和MSN都有语音聊天、文件传输、启动NetMeeting进行视频聊天等功能,QQ在语音音质、传输速度等方面略逊一筹,但总体功能设计上差异不大。但QQ独有的卡通人物头像的绝妙创意,是任何一款即时通讯软件也无法与之媲美的。 不仅如此,腾讯还形成了自己完整的企业文化,像各种各样的QQ玩偶、手表、T恤、背包、钥匙链等应有尽有,网上销售再加上全国数十家Q-GEN专卖店以及与移动厂商的合作等工作都进行得红红火火,而这些都是时间沉淀积累的结果,初来乍到的MSN应该是无法比较的。而MSN也以其方便的消息群发单击“我要下的“邀请他人参加该聊天和强大的资本和技术上的优势,完全有能力和可能继续向QQ发起新一轮的攻击。 “三朝元老与“巨人新星 ICQ与MSN放在一起比较,确实很有意思。一个是即时通讯领域的“大哥大,另一个是软件业的“巨无霸,即时通讯领域的后起之秀。从功能上看,MSN目前显然无法与ICQ相抗衡。但MSN借助与操作系统的无缝结合,任何人都不敢对它无礼和小视。 1、分组支持情况 两者都支持对好友进行分组,且都有两种模式,即组模式和状态模式。两个软件的组模式几乎相同,都是以组为主进行分类排序,即首类为组,每个组的下面再按在线和离线两种情况分类。所不同的是,ICQ的默认组只有一个,而MSN那么提供了四个默认组:家人、朋友、同事及其他联系人。ICQ的默认组可以重新命名但不能删除;MSN默认组中“其他联系人既不能重命名也不能删除,其他三组那么都允许。 2、消息群发功能 MSN与ICQ都有消息群发功能。但MSN只能通过“邀请其他联系人参加的方式进行,而且有最多参加四人共五人的限制。但ICQ的消息群发功能却很强大。在对话模式下,单击“Multiple即可展开所有好友的列表。没有人数限制,也没有在线与否的限制如图2。 3、其他功能比较 任何一款免费软件的使用过程中,都会被强制地安插进一些广告内容,ICQ也不例外。对于这一点,财大气粗的微软做得很好。无论是Windows XP中捆绑的MSN,还是网上免费下载的,几乎看不到广告的影子。另外,即使在最新的ICQ2002a中,似乎仍然不能支持网络摄像机和视频聊天等功能,而这些功能在即时通讯领域几乎成了必备的功能。不过,ICQ中强大的查找好友功能,使你只需记住好友的哪怕是一点点信息,就可以轻松找到这位好友,令任何一款即时通讯软件都望尘莫及如图3。新版2002a中还新增了效劳器保存好友信息的功能,使得在世界任何一个角落都可以及时方便地与好友进行联络。 其他产品简介 在即时通讯领域还有许多另类非主流的产品。如AOL Internet MSN、Yahoo! MSN雅虎通、SinaPager新浪寻呼、Sohu我找你、网易“口对口、诺斯 TICQ 、梦幻寻呼DICO、OMMO、V2 Communicator、8dCall等等。因为它们的用户群相对较小,所以容易为人们无视。但它们除了具备即时通讯的根本功能之外,都各有各的特点。这里只是挑选局部列举一下它们各自的特色功能: 1、雅虎通Yahoo MSN:用户可以通过它在线查询股票、新闻、体育记分板、天气、旅游等各方面的信息;还可以享受到雅虎网站的各种个性化效劳,包括:查阅来信、效率手册、获得股票报价、在线购物、拍卖投标、查询分类广告、访问俱乐部、玩游戏、和朋友聊天、阅读征友广告等等。 2、网易“口对口:可以显示各种类型网页受欢送的程度点击率。这样,你可以依靠访问量的大小来找到最受欢送的网页如图4;可以通过在右下角正确的设置自己的四类状态“我的意图、“我的可见度状态、“我的表情和“我的状态,来充分展示自己的形象;可以即时了解自己的主页点击情况。方法是:点击“工具菜单下的“主页观察站,弹出设置主页URL窗口。输入自己网站的网址,设定好之后,每当你开启网易口对口时,主页观察站就会自动弹出。窗口中显示当前浏览该网页的用户人数可见与不可见,以及在该页上的留言数目。 3、SinaPager新浪寻呼:网上留言功能如果您的朋友没有上网,您可以方便地用中、英文给他留言,他只要使用浏览器就可以看到您的留言了;类似翻译软件的浮动条的设计如图5,可有效节约屏幕空间;与新浪网站、新浪电子邮件等紧密的结合功能。 4、 诺斯 TICQ:定制新闻当主机端新闻更新时,你就可以在滚动条里看到最新的新闻了;自动弹出短讯/消息滚动可以让消息在滚动条中滚动显示;查看笑话不时在屏幕上弹出一那么笑话,令人捧腹大笑;定时闹钟可以指定时间让系统自动把设定的信息内容发送给你的网友,或者提醒自己该干的事情;断点续传传送文件的功能几乎所有的即时通讯软件都具备。具备“断点续传功能的即时通讯软件还真不多见,TICQ就是这样一款软件。 5、梦幻寻呼DICO:邮件群发功能;丰富的插件使得我们可以聊天娱乐两不误如图6;方便清晰的语音聊天功能能够穿透防火墙,到达 的音质效果;个人Web效劳可以把你的个人电脑轻松设置成一个Internet Web效劳器,让网友到你的硬盘上浏览你的个人主页。 6、酷8d网络伙伴8dCall:“听声辨人可以以不同音效通知好友上线或来信;股票成交消息实时回报只要你是8dCall的会员,只要你的下单券商提供8dCall股票成交回报功能,不管你采用哪种方式进行股票交易( 、柜台、网络等),都可以实时得到股票成交回报的消息;线上免费传呼使用8dCall可以免费传送中文、英文或数字到好友或合作伙伴的传呼机上。 2 实现聊天室的相关技术及环境2.1 Java概述1、背景 最近一年多来 ,在 Internet上出现的特别吸引人的事件就是Java语言和用 Java编写的浏览器 HotJava。 1991年 ,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人 ,为在电 视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak 的软件 (即一种橡树的名字 ),但当时并没有引起人们的注意 ,直到 1994年下半 年 ,Internet的迅猛开展 ,环球信息网 WWW的快速增长 ,促进了 Java语言研制的 进展 ,使得它逐渐成为 Int ernet上受欢送的开发与编程语言 ,一些著名的计算机 公司纷纷购置了 Java语言的使用权 ,如 Mi-croSoft、 IBM、 Netscape、 Novell、 Apple、 DEC、 SGI等 ,因此 ,Java语言被美国的著名杂志 PC Magazine评为 1995年十大优秀科技产品 ,(计算机类就此一项入选 ),随之大量出现了用 Java编写的软件产品 ,受到工业界的重视与好评 ,认为 Java是八十年代以来计算机界的一件大事 ,微软总裁比尔盖茨在悄悄地观察了一段时间后 ,不无感慨地说 :Java是长时间以来最卓越的程序设计语言 ,并确定微软整个软件开发的战略从 PC单机时代向着以网络为中心的计算时代转移 ,而购置 Java那么是他的重大战略决策的实施部署。 因此 ,Java的诞生必将对整个计算机产业发生深远的影响 ,对传统的计算模型提出了新的挑战。SUN MicroSystem公司的总裁 Scott McNealy认为 Java为 Internet和 WWW开 辟了一个崭新的时代。 环球信息网 WWW的创始人 Berners-Lee说 :计算机事业开展的下一个浪潮就 是 Java,并且将很快会发生的。 看来 ,使用 Java已成大势所趋 。 MicroSoft和 IBM两大公司都方案在 Internet上销售用 Java编写的软件。 Apple、 HP、 IBM、 MicroSoft、 Novell、 SGI、 SCO、 Tandem等公司均 方案将 Java并入各自开发的操作系统 ,而负责开发并推广 Java技术的 SunSoft公 司 (这是 SUN下属的一个子公司 ),将通过颁发许可证的方法来允许各家公司把 Java虚拟机和 Jav a的 Applets类库嵌入他们开发的操作系统 ,这样各类开发人员 就能更容易地选择多种平台来使用 Java语言编程 ,不同的用户也就可以脱离 Web 浏览器来运行 Java应用程序 ,这无疑是很受广阔用户欢送的 ,也为 Java语言的应 用开拓了极为广阔的前景。 (当然 ,各类 JavaOS之间的兼容性必须得到重视 ,好在 JavaSoft已保证将监督这种兼容性 )。 另外 ,由 JavaSoft推出的完全用 Java编写的 Internet上新型浏览器HotJava,比去年 alpha版更为实用 ,不仅能编制动态的应用软件 ,而且能编制完整的成套桌面应用软件 ,将来还会提供更多的能帮助编制动态应用软件的模块 ,显然 ,这也是为 Java的应用提供了有力的例证。 今年 6月 7日 ,由 SUN公司和台湾经济事务部信息开展局、台湾信息技术研究所等单位牵头 ,成立了一个Java联盟 ,参加的有 22个在台湾相当著名的计算机公司 ,并在台北建立一个 Java开发中心 ,在新竹建立一个Java语言实验室,以掀起台湾开发与应用 Java语言的热潮。 香港那么在今年 4月就举行了全岛的 Java杯比赛 ,在计算机界掀起了学习 Java的热潮 (尤其是在大学生们中 ,出现了一批 Java迷 )。 有人预言 :Java将是网络上的 世界语 ,今后所有的用其他语言编写的软件统统都要用 Java语言来改写。 2、Java语言对软件开发技术的影响 工业界不少人预言 :Java语言的出现 ,将会引起一场软件革命 ,这是因为传统的软件往往都是与具体的实现环境有关 ,换了一个环境就需要作一番改动 ,耗 时费力 ,而 Java语言能在执行码 (二进制码 )上兼容 ,这样以前所开发的软件就 能运行在不同的机器上 ,只要所用的机器能提供 Java语言解释器即可。Java语言将对未来软件的开发产生影响 ,可从如下几个方面考虑 : 1软件的需求分析 :可将用户的需求进行动态的、可视化描述 ,以提供设计 者更加直观的要求。而用户的需求是各色各样的 ,不受地区、行业、部门、爱好的 影响 ,都可以用 Java语言描述清楚。 2软件的开发方法 :由于 Java语言的面向目标的特性 ,所以完全可以用 O-O 的技术与方法来开发 ,这是符合最新的软件开发标准要求的。 3 Java语言的动画效果远比 GUI技术更加逼真 ,尤其是利用 WW W提供的巨大 动画资源空间 ,可以共享全世界的动态画面的资源。 4软件最终产品 :用 Java语言开发的软件可以具有可视化、可听化、可操 作化的效交互、动画与动作 ,要它停就停 ,要它继续就继续 ,而这是在电影与电视播放过程中难以做到的。 5其它 :使用 Java语言对开发效益、开发价值都有比较明显的影响。 3、应用前景Java语言有着广泛的应用前景 ,大体上可以从以下几个方面来考虑其应用 : 1所有面向对象的应用开发 ,包括面向对象的事件描述、处理、综合等 ; 2计算过程的可视化、可操作化的软件的开发 ; 3动态画面的设计 ,包括图形图像的调用 ; 4交互操作的设计 (选择交互、定向交互、控制流程等 ); 5 Internet的系统管理功能模块的设计 ,包括 Web页面的动态设计、管理 和交互操作设计等 ; 6 Intranet(企业内部网 )上的软件开发 (直接面向企业内部用户的软件 ); 7与各类数据库连接查询的 SQL语句实现 ; 8其它应用类型的程序。4、Java的特点 Java语言有下面一些特点:简单、面向对象、分布式、解释执行、鲁棒、 平安、体系结构中立、可移植、高性能、多线程以及动态性。2.2 TCP/IP协议常识(1) TCP/IP协议的特点:TCP/IPTransmission Control Protocol/Internet Protocol是传输控制协议/网际协议的缩写, TCP/IP是当今网络互联的核心协议。TCP/IP协议的体系结构共有四个层次,即应用层、传输层、网络互联层和网络接口层。IP协议的作用:第一,它是网络层的协议,提供互联网上数据传输的统一格式。第二,提供不可靠的无连接的效劳。第三,定义了互联网上的传输数据的根本单元,提供了供路由选择的信息,没有过失校验和处理的机制。TCP协议的功能:过失控制可靠性、面向连接、分段Segment、端口号。TCP是传输控制协议,是面向连接的提供了一种可靠的传输效劳,它用三次握手和滑动窗口机制来保证传输的可靠性,及进行流量控制。TCP/IP协议具有以下特点:1、协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。2、统一分配网络地址,使得每个TCP/IP 设备在网络中都具有唯一的IP地址。3、实现了高层协议的标准化,能为用户提供多种可靠的效劳。(2)TCP/IP协议进行传输数据传输的过程:应用程序为了传输数据会调用TCP,将数据和对应的参数传给TCP,将TCP 数据包封装在IP包内,通过网络送给目的TCP。接收方TCP在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP 也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调用IP接口,向TCP提供所有TCP需要的效劳。(3)端口号:有的时候,一个ip地址不能完整的标识一台效劳器,这是应为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的效劳,所以就在传输层和应用层上设置接口,就是端口。端口实际是一个16位长的 地址,他的范围是065535之间,其中01023是熟知端口,主要是给提供效劳的应用程序使用,这些端口是所有应用进程都只道的,102465535为一般端口,也称动态端口、连接端口,用来随时分配要求通信的个客户端应用程序。在数据传输过程中,各种效劳器不断的检测分配给他的端口,一边发现要求和他通信的客户端。4Socket的简介Socket,简称套接字,用于实现网络上客户和效劳器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。具体的说:一个效劳器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个socket建立连接,客户端通过写socket来通知效劳器,以读socket中的信息,类似的效劳器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。效劳器也通过它的本地端口连接一个socket,通过读写和客户端通信。Socket程序的工作过程:1、建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通道。2、数据通信:利用虚拟连接通道传送数据信息进行通道。3、关闭:通信结束时,再将所建的虚拟连接撤除。1效劳器socket2监听4接收5读6写7关闭3客户端socketsocket6 写5读7关闭图2.1 客户机/效劳器socket通讯的工作模式图第一次握手:原主机发送一个带有本次连接的序号的请求的一个数据帧。第二次握手:目的主机收到请求后,如果同意连接,那么发回一个带有一个本次连接序号和源端机连接序列号确实认。第三此握手:源端机收到含有两次初始序列号的应答后,在向目的主机发送一个带有两次连接的序列号确实认。具体的三次握手过程,如图2.2所示。ACK=1第一次握手,主机A向主机B发送连接请求第二次握手,主机B收到主机A的请求,向主机A回发一个确认,同时向主机A发送一个连接请求第三次握手,主机A收到主机B发送的数据包在向主机B发送一个确认连接主机A 主机BSYN=1,SEQ=ACK=1,SYN=1,SEQ=aaaaaaaaaa图2.2 三次握手开发环境开发工具基于JAVA聊天系统的设计主要运用JAVA与语言与Socket类结合而开发。其开发的主要环境包括:效劳器端:Windows平台首先应有java环境jdk,建议采用jdk1.5以上,另外还需配置classpath环境变量,本系统开发工具为MyEclipse5.5;客户端:只要有java环境jdk就可以,建议jdk1.5。开发环境 本系统运行环境所需用到的环境为:硬件配置 :中央处理器CPU :P4 2.0G的处理器;硬 盘:40GB以上硬盘; 内 存:512 DDR内存;显示器:17寸显示器等; 显 卡:128M显存显卡软件环境:WINDOWS XP、Eclipse、jdk等3 网络聊天系统的系统设计人们日常生活中越来越多地使用这项新技术来为自己的工作和学习效劳。一个操作简单、友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好的交流作用。本聊天室,所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天室将自己融入整个主流社会中。因此,在网上聊天室这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。该聊天室是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择。和许多大型的网络聊天室相比该小聊天室功能比较简单,但是实现了聊天的根本功能,点对多聊天,点对点聊天等,基于时间和技术的原因,很遗憾传送文件、发送图片、视频聊天等尚未实现。功能需求一个网络聊天室的运行,首先是要有一个完整稳定的效劳器端,并且拥有很多个效劳器端。客服端要具有实现用户注册和用户登陆,在登陆成功后,要显示出公聊界面,实现聊天功能并且能够发送表情和保存聊天内容和显示聊天记录等功能,在新用户上线和用户下线时要更新每个客户端在线用户列表名,并且可以和在线的用户实现一对一的私聊功能。在效劳器端可以实现不断的监听客服的连接,并且根据客户端发送过来的不同信息如注册信息,登录信息,公聊信息,私聊信息,退出信息等,效劳器端要做出不同的响应,并且要实现数据库的操作,如根据用户注册的信息保存数据库中,根据登录时发送来的用户名和密码检测是否合法用户等。客户端功能模块图如图3.1所示: 用户注册功能,实现用户的登陆ID注册和个人信息,并存入效劳器数据库中。 用户登录功能,实现合法注册用户的登陆。 私聊功能,实现用户和在线的其他用户一对一的聊天方式。 公聊功能,实现用户和在线的所有用户聊天方式。 显示时钟功能。 查看聊天记录,实现用户查看已聊天的历史聊天内容。 发送表情和设置聊天内容字体,并可以设置字体颜色和背景色等。 过滤用户聊天中的不文明用语图3.1 客户端结构图 效劳器端功能模块图如图3.2所示: 可以不断的监听客户端请求 显示登陆客户的信息、当前在线人数、效劳器开启状态、保存日志、用户在线列表 发送系统消息 踢人图3.2 效劳器端结构图在聊天室的分析过程中,明确了系统主要有两类角色Actor及相关用例系统管理员:系统管理员维护聊天室系统得所有信息,包括用护户管理、配置效劳器参数等。普通用户:普通用户可以使用系统进行聊天室效劳,包括:注册用户名、登录效劳器,聊天发言、退出聊天室等根据前面的分析,得到了聊天室系统的用例UseCase图。如图3.3所示为整个系统的用例图。图3.3 系统的总体用例图3.4 聊天室系统的设计 聊天系统工作原理图图3.4 聊天系统工作原理图系统实现原理当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与效劳器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给效劳器端。当用户发送聊天信息时,效劳端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问,具体实现过程如图3.5所示。 接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新效劳器上是否有最新消息,在本程序中设定的是3秒刷新效劳器一次,如果间隔时间太短将会增加客户端与效劳器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最正确,因为每个用户都不可能在3秒内连续发送信息。 当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。图3.5 系统实现原理系统的设计过程(1) 用户的登录/退出用户发送登录请求,客户端获取用户登录信息并发送到效劳器端,效劳器启动用户登录管理线程,获取用户名和密码进行登录验证,将验证结果返回客户端显示,如图3.6示为普通用户登录/退出系统的时须图。图3.6 普通用户登录/退出系统时得时序图2用户注册用户第一次进入聊天室时需要进行用户注册才能登陆聊天室聊天。注册流程如下:用户提出注册请求,客服端响应,弹出注册信息对话框,用户输入相关信息并提交,客户端首先进行合法检查,确定无误后将数据信息发送给效劳器端。效劳器接收到请求后,启动单独得线程进行处理,首先进行合法性检查,确认登录名与系统中已注册得用户登陆名不相同后更新数据,并返回信息,客服端进行显示。如图3.7所示为用户注册的时序图。3发言发言是聊天室的核心功能,用户提出发言请求,客户端接受发言的内容和其他各种设置(公聊或私聊),打包发给效劳器端。效劳器接收到请求后确定聊天方式。效劳结果最后显示在客户端。如图3.8所示为发言的时序图。图3.8 发言的时序图数据封装设计现在需要将数据封装设计E-R图转化为能被实际数据库系统所支持的实际数据模型。Customer.java 对登陆的用户进行封装,包括:用户名 密码,用户头像。对注册信息进行封装,包括:用户名,密码,性别,年龄,电子邮箱,用户头象。对效劳器端消息进行封装,包括:用户在线对象集,聊天信息集,被踢者姓名,公告。对客户端信息进行封装,包括:发言人用户名,聊天内容接受对象用户名聊天语气是否私聊。对退出用户进行封装,包括:退出者用户名。4 聊天系统的实现及测试界面是人机交互的窗口。用户界面接收用户的输入信息,并将程序执行的结果向用户输出。良好的用户界面能够提升用户的工作效率,是系统得到更好的声誉。根据用例可以制定出用户界面,包括:用户界面的功能、与用户交互的信息,以及用户界面之间的切换关系等本聊天室,界面主要由2局部组成:(1) 客户界面(2) 效劳器界面客户端界面客户端界面主要包括:登陆界面、注册界面、聊天室界面。客户端主要完成与效劳器的连接和各种数据的传送,为聊天室用户提供良好的人机界面。用户要进入聊天室必须首先经过登录。聊天室的客户端登录界面如图4.1所示。用户必须指定用户名。输入密码。以及效劳器的地址以及端口。图4.1 登陆界面用户第一次登录,需要注册,点击注册,将出现注册界面,如图4.2所示。图4.2 注册界面用户通过效劳器验证,登录成功,将出现聊天室界面,如图4.3所示。图4.3 聊天室界面Java效劳器主要提供各种聊天室效劳,包括数据转发,用户信息维护,信息维护,其界面主要提供启动效劳的功能,分为效劳器管理和用户信息管理,如图4.4所示。效劳器界面图4.4 效劳器管理界面图4.5 用户信息管理界面系统设计在将系统的界面设计完成时,就要开始进行系统的功能设计了,根据需求分析要求将分两个局部来进行设计:(1) 效劳器端模块设计(2) 用户端模块设计客户端结构ChatClient.java 为客户端程序启动类,负责客户端的启动和退出。Login.java 为客户端程序登录界面,负责用户帐号信息的验证与反应。Register.java 为客户端程序注册界面,负责用户帐号信息的注册验证与反应。ChatRoom.java 为客户端程序聊天室主界面,负责接收、发送聊天内容与效劳器端的Connection.java 亲密合作Windowclose 为的内部类,负责监听聊天室界面的操作,当用户退出时返回给效劳器信息。Clock.java 为客户端程序的一个小程序,实现的一个石英钟功能。函数名返回值功能Login()无初始化登陆窗口login()无登陆事件响应方法actionPerformed(ActionEvent)无按钮监听响应函数名返回值功能ChatRoom ()无构造方法初始化聊天室窗口run()无开启一个聊天室窗口线程exitChatRoom()无退出聊天室actionPerformed(ActionEvent)无按钮监听响应Windowclose无监听窗口关闭响应clearMessage()无清屏exit()无退出函数名返回值功能ChatRoom ()无构造方法初始化聊天室窗口run()无开启一个聊天室窗口线程exitChatRoom()无退出聊天室actionPerformed(ActionEvent)无按钮监听响应Windowclose无监听窗口关闭响应clearMessage()无清屏exit()无退出C函数名返回值功能ConnectionServerFrame,Socket,Vector,Vector无创立与客户端的通讯连接Run无创立与客户端的通讯线程ServerLogin无登陆处理FreshServerUserList无更新效劳器日志窗体在线列表ServerRegiste无注册处理ServerMessage无发送信息处理ServerChat无增加信息处理ServerExit无用户退出处理RemoveUser()无在线用户删除退出Log无日志信息chatLog无聊天信息效劳器端结构创立效劳器,启动效劳器,监听端口。如监听客户的请求,当有用户请求时创立 Connection线程。Connection.java 处理登陆,注册信息,刷新效劳器用户列表,对聊天信息进行处理, 用户退出处理,效劳器信息处理,为效劳器端程序聊天室主界面,负责保存日志,显示效劳器状态,做踢人处理WordFilter.java 用户聊天内容过滤器图4.6 效劳器处理用户登陆流程图1. 用户注册的测试当用户在登录时,必须输入用户名和密码才能进入,如果有一项为空,那么弹出提示对话框提示请输入相应空白区的内容,如图4.7和图4.8所示。2用户的注册的测试当用户在注册时,必须输入用户名、密码、确认密码、年龄、电子邮箱才能进入,如果有一项为空,那么弹出提示对话框提示请输入相应空白区的内容。当什么也没有输入时,会出现如图4.8所示的对话框。当什么也没有输入时,会出现如下图的对话框。当输入的密码和确认密码不一致是,系统会弹出如图4.9所示的对话框。当没输入年龄或者年龄的输入不是数字时,系统会弹出如图4.10所示的对话框。当电子邮箱为空或者电子邮箱的格式不正确时,系统会弹出如图4.11所示的对话框。3用户接收用户聊天信息用户可以接收聊天室内所有在聊天室的用户的消息,并再接收时可以看到发送信息人所设定的表情,如图4.12所示,为了实现聊天室的用语文明,所以本聊天系统还实现了,非法聊天内容进行屏蔽,使聊天室更加友好文明化。本系统还实现了单人对单人的私聊,对自己的界面的字体和颜色进行改变,如图4.13所示。本系统实现了一个时钟的功能,以方便用户可以随时看到时间如图4.13所示。5.效劳器踢人 效劳器拥有踢人权限,可以踢除在线的用户,如图4.12所示。6.效劳器公告 系统可以对所有的用户发系统消息,来通知用户各种各样的公告,如图4.13所示。7.效劳器保存日志 系统可以对所有的用户登录和退出的信息,发系统消息,来通知用户各种各样的事情,如图4.13所示。参考文献1Bruce EckelJava编程思想M北京:电子工业出版社,20062Cay S Horstmann,Gary CornellJava2核心技术M北京:机械工业出版社,20063陈刚Eclipse从入门到精通M北京:清华大学出版社,20054冉浩快易通Java程序设计M北京:北京大学出版社,20005叶至军由浅入深Java2自学手册M北京:人民邮电出版社,20046朱富喜Java语言程序设计M北京:清华大学出版社,20057Art Taylor,Randy Layman,Brian BuegeJ2EE Java黑客大曝光:开发平安的Java应用程序M北京:清华大学出版社,2003 8 杨丽娜电子商务环境中J2EE的关键技术及其应用研究D武汉:武汉理工大学,20059 宛延闿.Java编程技巧M.北京:机械工业出版社,200510钟珞,刘玲,夏红霞基于JavaMail API的Web邮件系统开发D武汉:武汉理工大学计算机科学与技术学院,200611徐剑军,徐鹏.Java嵌入技术M.北京:清华大学出版社,199812Jan NewmarchJini技术开发指南M.北京:中国电力出版社,200313Paul B MondayFMA和Jiro入门J/OL :/ ibm 14SUNJava API中文文档J/OLJava.sun 15ncic用Java实现网络语音信号传送J/OL
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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