聊天室的设计与实现_第1页
聊天室的设计与实现_第2页
聊天室的设计与实现_第3页
聊天室的设计与实现_第4页
聊天室的设计与实现_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

Java聊天室的设计与实现学院:计算机学院专业:班级:学号:姓名:秦向红指导老师:11月

TOC\o"1-3"\h\u120301.设计背景 1184142.设计环境 1260033.设计目的 123574.Socket介绍 1181245.Socket的通信机制图: 3312396.程序的设计 4112676.1服务器的设计 4173936.2客户端的设计 7326927.测试及运行成果 10230967.1服务器的测试 1061317.2客户端的测试 10212158.设计总结 13291709.参考文献 132473810.附代码 141601110.1服务器代码 141582810.2客户端的设计 17Java聊天室的设计与实现设计背景在互联网如此发达的今天,即时通信工具已经成为我们如常生活中必不可少的一部分。人们对网络的依赖越来越多,越来越离不开网络,而由此产生的聊天工具也越来越多,类似有QQ、MSN、、微信等,网络聊天使网络聊天系统发展的日新月异,由此产生制作了一种简朴的聊天功效的网络聊天程序,由此此设计我还能够更加好的学习网络软件的编程知识。Java语言是当今流行的网络编程语言,它含有面对对象,与平台无关,安全,多线程等特点。使用java语言不仅能够实现大型公司级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面对对象的开发是当今世界最流行的开发办法,它不仅含有更贴近自然地语义,并且有助于软件的维护和继承。本次设计的题目为聊天室,能够巩固所学的java语言基础知识,增进java语言的编辑基本功,拓宽惯用类库的应用,使我们通过教学环节与手段,把所学的课程及有关知识加以融会贯穿,全方面理解网络编程的含义。设计环境操作系统:Window8CPU:1.80GHz内存:4.00GB硬盘空间:80G开发工具:JDK1.5、Eclipse设计目的聊天室即使程序简朴,但是在设计与实现的过程中能够充足学到基于Socket的网络编程的技术,使我掌握网络编程的服务的技术,能够充足运用我近期学到的java编程语言。实现聊天功效Client/Server的面对连接的编程技术。使用多线程进行多个客户端和服务器的连接,实现数据的读取与输入。实现网络聊天系统的设计与实现,让我们掌握网络编程的服务的技术,让同窗们更加深刻的理解,掌握这方面的知识Socket介绍Socket的英文原义是“孔”或“插座”。作为BSDUNIX的进程通信机制,取后一种意思。普通也称作"套接字",用于描述IP地址和端口,是一种通信链的句柄。在Internet上的主机普通运行了多个服务软件,同时提供几个服务。每种服务都打开一种Socket,并绑定到一种端口上,不同的端口对应于不同的服务。Socket非常类似于电话插座。在这里,我以一种国家级电话网为例更加清晰的解说一下Socket。电话的通话双方相称于互相通信的2个进程,区号是它的网络地址;区内一种单位的交换机相称于一台主机,主机分派给每个顾客的局内号码相称于Socket号。任何顾客在通话之前,首先要占有一部电话机,相称于申请一种Socket;同时要懂得对方的号码,相称于对方有一种固定的Socket。然后向对方拨号呼喊,相称于发出连接请求(如果对方不在同一区内,还要拨对方区号,相称于给出网络地址)。如果对方在场并空闲(相称于通信的另一主机开机且能够接受连接请求),拿起电话话筒,双方就能够正式通话,相称于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接受信号的过程,相称于向Socket发送数据和从socket接受数据。通话结束后,一方挂起电话机相称于关闭Socket,撤销连接。在电话系统中,普通顾客只能感受到本地电话机和对方电话号码的存在,建立通话的过程,话音传输的过程以及整个电话系统的技术细节对他都是透明的,这也与Socket机制非常相似。Socket运用网间网通信设施实现进程通信,但它对通信设施的细节毫不关心,只要通信设施能提供足够的通信能力,它就满足了。抽象出来,Socket实质上提供了进程通信的端点。进程通信之前,双方首先必须各自创立一种端点,否则是没有方法建立联系并互相通信的。正如打电话之前,双方必须各自拥有一台电话机同样。在网间网内部,每一种Socket用一种半有关描述:(合同,本地地址,本地端口)。一种完整的Socket有一种本地唯一的Socket号,由操作系统分派。最重要的是,Socket是面对客户/服务器模型而设计的,针对客户和服务器程序提供不同的Socket系统调用。客户随机申请一种Socket(相称于一种想打电话的人能够在任何一台入网电话上拨号呼喊),系统为之分派一种Socket号;服务器拥有全局公认的Socket,任何客户都能够向它发出连接请求和信息请求(相称于一种被呼喊的电话拥有一种呼喊方懂得的电话号码)。Socket运用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器Socket半有关为全局所公认非常重要。根据传输数据类型的不同,Socket重要分为三类:①流式Socket(SOCK—STREAM),在这种方式下,两个通讯的应用程序之间要先建立一种虚拟连接,提供可靠的、面对连接的通信流,它使用TCP协议,从而确保了数据传输的对的性和有序性。②数据报Socket(SOCK—DGRAM),它使用数据报合同UDP,定义了一种无连接服务,数据通过互相独立的报文进行传输,是无序的,并且不确保可靠、无差错。③原始Socket,原始套接字允许对底层合同如IP或ICMP直接访问,它功效强大但使用较为不便。重要用于某些合同的开发。

Socket的通信机制图:TCP服务器端TCP服务器端Socket()结束连接回应数据请求数据发送连接请求Connect()TCP客户端接受服务的返回成果Read()关闭Close()向服务器发出服务请求Write()创立对象Socket()Bind()结束连接回应数据请求数据发送连接请求Connect()TCP客户端接受服务的返回成果Read()关闭Close()向服务器发出服务请求Write()创立对象Socket()Bind()Listen()阻塞等待连接的建立:Accept()阻塞等待连接的建立:Accept()建立连接建立连接接受客户端的请求消息接受客户端的请求消息Read()解决客户端的请求消息解决客户端的请求消息Write()解决成果返回给客户端解决成果返回给客户端Read()关闭关闭Close()6.程序的设计6.1服务器的设计1.新建一种Java项目用来实现服务器的设计服务器主函数的创立,使用类TestServerSocket3023.创立服务器的监听事件,使用类ServerListener02在服务器的监听事件中,重要指定服务器的端标语以及重写父类的run函数启动新的线程创立基于Socket通信的线程,使用类ChatSocket302在创立基于Socket通信的线程中,重要定义一种Socket变量然后在定义两个函数,一种用于解决数据的输入。另一种用于解决数据的输出实现服务器对客户端进行的管理,使用类ChatManager302实现服务器与客户端的连通中,重要的一点就是对类进行单例化解决,觉得不是任何人都能够随便创立这类(即服务器)的,别人只能够连接服务器,而不能够进行创立。另外还设计的函数有添加客户端,移除客户端,以及对客户端的数据进行转发6.2客户端的设计首先新建一种java项目,实现客户端的某些设计新建两个包,一种用于实现功效,另一种用于实现聊天的界面设计界面的设计首先需要新建一种JFrame,命名为MainView新建框架之后需要,需要为其添加编辑框,按钮,显示文本等的控件,添加之后还要为其布局,布局之后显示以下:5.添加主函数,命名为TestClient3026.添加对客户端的数据解决功效,创立类ChatManager302与服务器的创立同样,需要对客户端进行单例化解决,只有本类自己能够创立客户端,别人不能够随便创立另外有对服务器发送的连接请求函数对发送按钮的响应函数测试及运行成果7.1服务器的测试运行服务器,查看显示成果测试服务器绑定的端标语(24302)。打开浏览器,输入127.0.0.1:243027.2客户端的测试运行客户端程序,并新建客户端客户端连接服务器

当点击“拟定”后,在客户端的显示框中,会显示“连接服务器的消息”创立多个客户端,连接服务器进行聊天客户端1:

客户端2:8.设计总结基于孙老师讲的Socket的网络聊天系统的设计(C++编写版),由于近期我始终在钻研java编程语言,于是我就做了一种用java语言编写的基于Socket的网络聊天程序的设计。通过本次设计我又进一步对基于Socket的网络聊天有了新的理解,并且本次通过我自己独立设计程序,编写程序,使我对Client/

Server构造软件的设计有了新的认识。对网络编程有了进一步的理解。

在设计的过程中理解到自己的知识还是比较有限,使得程序还不够完善。回想本次Java程序的编写。从理论到实践,能够学到诸多东西,同时不仅能够巩固以前学的东西,并且学到了诸多课本上学不到的东西,通过本次设计,使得自己懂得必须要把理论和实践相结合起来,从理论中得出结论,才干真正掌握这门技术,也提高了自己独立思考的能力,在设计的过程中,能够自己解决。真正体会到要将一门知识学到能够自己运用,才是属于自己的,因此我必须加强实践,多练习。本次设计尚有诸多局限性与缺点,程序中尚有诸多问题需要完善。例如,服务器要统计

温馨提示

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

评论

0/150

提交评论