欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    计算机网络 课程设计报告--即时通讯软件.docx

    • 资源ID:6724969       资源大小:131.71KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机网络 课程设计报告--即时通讯软件.docx

    课程设计报告20142015学年第一学期课程名称计算机网络设计题目即时通信软件目录一、任务分析与方案设计L任务分析错误!未定义书签。2.方案设计2二、开发环境与工具错误!未定义书签。1 .设计环境错误!未定义书签。1. 1eclipse开发平台介绍错误!未定义书签。2 .基础知识错误!未定义书签。2. IjavaSocket网络编程简介错误!未定义书签。3. 2套接字的介绍错误!未定义书签。三、TCP简介及特点原理5L什么是TCP52. TCP功能53. TCP所提供服务的主要特点64. TCP支持的服务器类型65. TCP的端口号66. TCP协议是如何确保数据传输高可靠性77. TCP的服务流程7四、关键技术与理论错误!未定义书签。1. JAVA编程技术错误!未定义书签。2. JavaSocket网络编程接口错误!未定义书签。五、相关图解及程序10L体系结构设计102.具体功能模块的分析11六、测试及结果分析错误!未定义书签。七、心得体会错误!未定义书签。八、参考文献错误!未定义书签。一、任务分析与方案设计1 .任务分析计算机网络被应用于我们生活中的方方面面,可以说是网络让我们的生活变得更加美好,更加方便和快捷,我们的生活离不开网络基于局域网的即时通信软件的核心技术其实与基于Internet的即时通信软件的设计技术是一样的,只是规模比较小。基于Internet的通信工具一般采用TCP或者UDP协议来实现的,开发技术已经非常成熟,它们不仅实现了即时聊天、文件传输等功能,而且还能够实现即时视频、语音聊天功能等。在局域网内,这类软件的设计比在Internet中设计更为简单。因为Internet是网络中的网络,结构更为复杂,遇到的情况要比在局域网中还要多。所以说局域网的聊天工具的设计要相对简单些。而且即时通信是一个终端连往一个即时通信网络的服务。即时通信不同于e-mail在于它的交谈是实时的。大部分的即时通信服务提供了presenceawareness的特性一一显示联络人名单,联络人是否在线与能否和联络人交谈。2 .方案设计程序采用JAVA编程,利用java强大的基础类库,调用java中界面开发的SWing和网络编程的net函数群来完成本次的javaSOCket(网络套接字)网络即时通信工具的开发。在java中,可以把发送的信息看成是一个一个的对象,当我们利用SoCkCt链接把客户端和服务器链接起来以后,他们之间就可以以对象流的形式发送彼此需要通信的信息了。在java的网络编程中,最为核心的就是客户端和服务器相互取得SOCket的链接,只要能够能够取得链接,其他的工作基本上都是java的面向对象的编程思想去完成一些网络通讯的业务逻辑的处理。二、开发环境与工具1 .设计环境开发程序的操作系统:WindoWS7(在WindoWSXP>2000里也可以)编译工具:eclipse程序工程:JAVA工程,SerVer和Client网络环境:局域网(或互联网上运用,只要安装客户端并且知道服务器端的IP)1.1 eclipse开发平台介绍ECliPe是著名的跨平台的自由集成开发环境(IDE)o主要用来JaVa语言开发。ECliPSe的本身只是一个框架平台,但是众多插件的支持,使得ECIiPSe拥有较佳的灵活性。许多软件开发商都以Eclipse为框架开发自己的IDEo另外由于eclipse是开源的,所以得到了广大用户的认可。Eclipse也于2001年11月被它的开发公司IBM公司贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(ECliPSeFoundation)管理。2 .基础知识3 .IjavaSocket网络编程简介Socket有两种主要的操作方式:面向连接的和无连接的。面向连接的sockets操作就像一部电话,他们必须建立一个连接和一人呼叫。所有的事情在到达时的顺序与它们出发时的顺序时一样。无连接的sockets操作就像是一个邮件投递,没有什么保证,多个邮件可能在到达时的顺序与出发时的顺序不一样。到底用哪种模式是邮应用程序的需要决定的。如果可靠性更重要的话,用面向连接的操作会好一些.比如文件服务器需要他们的数据的正确性和有序性。如果一些数据丢失了,系统的有效性将会失去。一些服务器,比如间歇性地发送一些数据块,如果数据丢了的话,服务器并不想要再重新发过一次,因为当数据到达的时候,它可能已经过时了.确保数据的有序性和正确性需要额外的操作的内存消耗,额外的费用将会降低系统的回应速率。无连接的操作使用数据报协议。一个数据报是一个独立的单元,它包含了所有的这次投递的信息。把它想象成一个信封吧,它有目的地址和要发送的内容。这个模式下的socket不需要连接一个目的的socket,它只是简单地投出数据报。无连接的操作是快速的和高效的,但是数据安全性不佳。面向连接的操作使用TCP协议。一个这个模式下的socket必须在发送数据之前与目的地的socket取得一个连接。一旦连接建立了,sockets就可以使用一个流接口:打开(-读-写-关闭)。所有的发送的信息都会在另一端以同样的顺序被接收.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高。java降低了建立一个sockets程序的难度。每一个传输模式都被封装到了不同的类中。面向连接的类将会首先被我们讨论。到底用哪种模式是邮应用程序的需要决定的。如果可靠性更重要的话,用面向连接的操作会好一些。比如文件服务器需要他们的数据的正确性和有序性。如果一些数据丢失了,系统的有效性将会失去。一些服务器,比如间歇性地发送一些数据块,如果数据丢了的话,服务器并不想要再重新发过一次。因为当数据到达的候,它可能已经过时了。确保数据的有序性和正确性需要额外的操作的内存消耗,额外的费用将会降低系统的回应速率.2.2套接字的介绍多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(SOCket)的接口。套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端面点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程非常非常简单的举例说明下:SOCket=IPaddress+TCP/UDPport.应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程用进程提供并发服务的问题。2.3TCP/IP协议简介TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP主要包括以下协议:IP:网间协议(InternetPrOtoCo1),负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。ICMP:网间报文控制协议(InternetControlMessageProtOCe)I)此协议处理网关和主机的差错和传送控制。TCP:传输控制协议(TranSmiSSiOnControlPrOtOCOI)这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。三、TCP简介及特点原理L什么是TCPTCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transportlayer)通信协议。在简化的计算机网络OSl模型中,它完成第四层传输层所指定的功能。在因特网协议族(InternetPrOtoCoIs3te)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。在拥塞控制上,采用慢启动算法。2. TCP功能提供计算机程序间连接、检测和丢弃重复的分组、完成数据报的确认、流量控制和网络拥塞。3. TCP所提供服务的主要特点(1)面向连接的传输;(2)端到端的通信;(3)高可靠性,确保传输数据的正确性,不出现丢失或乱序;(4)全双工方式传输;(5)采用字节流方式,即以字节为单位传输字节序列;(6)紧急数据传送功能。4. TCP支持的服务器类型不管怎样,TCP/IP是一个协议集。为应用提供一些“低级”功能,这些包括IP、TCP、UDPo其它是执行特定任务的应用协议,如计算机间传送文件、发送电子邮件、或找出谁注册到另外一台计算机。因此,最重要的"商业YTCP/IP服务有:令文件传送FiIeTranSfer令远程登录Remotelogin÷计算机邮件Mail÷网络文件系统(NFS)令远程打印(RemOteprinting)令远程执行(Remoteexecution)令名字服务器(Nameservers)令终端服务器(Terminalservers)5. TCP的端口号TCP段结构中端口地址都是16比特,可以有在0-65535范围内的端口号。对于这65536个端口号有以下的使用规定:(1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。任何TCP/IP实现所提供的服务都用11023之间的端口号,是由IANA来管理的;(2)客户端只需保证该端口号在本机上是惟一的就可以了。客户端口号因存在时间很短暂又称临时端口号;(3)大多数TCP/IP实现给临时端口号分配10245000之间的端口号。大于5000的端口号是为其他服务器预留的。6. TCP协议是如何确保数据传输高可靠性为了保证可靠性,发送的报文都有递增的序列号。序列号和确认号用来确保传输的可靠性。此外,对每个报文都设立一个定时器,设定一个最大时延。对那些超过最大时延仍没有收到确认信息的报文就认为已经丢失,需要重传。7. TCP的服务流程TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。TCP通过下列方式来提供可靠性: 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(Segment)TCP如何确定报文段的长度。 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒 TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。 既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。 TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4次接收这80个字节,每次接收20字节。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCIl字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。这种对字节流的处理方式与UniX操作系统对文件的处理方式很相似。Unix的内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对UniX的内核来说,它无法区分一个二进制文件与一个文本文件。TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK0这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,客户端发送SYN包(SEQ=X)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=X+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器时入Established状态,完成三次握手。四、关键技术与理论1. JAVA编程技术Java是Sun公司推出的一种编程语言。它是一种通过解释方式来执行的语言,语法规则和C+类似。同时,JaVa也是一种跨平台的程序设计语言。用JaVa语言编写的程序叫做“Applet”(小应用程序),用编译器将它编译成类文件后,将它存在WwW页面中,并在HTML档上作好相应标记,用户端只要装上JaVa的客户软件就可以在网上直接运行“Applet”oJaVa非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构2. JavaSocket网络编程接口事实上网络编程,简单的理解就是两台计算机相互通讯数据而已。对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了。Javasdk提供一些相对简单的api来完成这些工作,socket就是其中之一。对于java而言,这些api存在于这个包里面。因此,只要导入这个包就可以准备网络编程了。网络编程的基本模型就是客户机到服务器模型。简单的说,就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置,并去建立两者之间的联系。然后完成数据的通讯就可以了。这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端。基于这个简单的模型,就可以进入网络编程.对于java而言已经简化了socket的编程接口。首先需要确定有关提供固定位置的服务方是如何建立的。jaVa提供了SerVerSoCket来对其进行支持。事实上当创建该类的一个实力对象并提供一个端口资源,就建立了一个固定位置可以让其他计算机来访问。serversocketserver-newserversocket(6789);这里稍微要注意的是端口的分配必须是唯一的。因为端口是为了唯一标识每台计算机唯一服务的。另外端口号是从065535之间的,前1024个端口已经被tcp/ip作为保留端口,因此,分配的端口只能是1024个之后的。有了固定位置,现在所需要的就是一根连接线了。该连接线由客户方首先提出要求。因此java同样提供了一个socket对象来对其进行支持。只要客户方创建一个socket的实例对象进行支持就可以了。socketclient=newsocket(inetaddress.getlocalhostO,5678);客户机必须知道有关服务器的ip地址。对于这一点,java也提供了一个相关的类inetaddresso该对象的实例必须通过它的静态方法来提供。它的静态方法主要提供了得到本机ip和通过名字或ip直接得到inetaddress的方法。i/。操作总是和网络编程息息相关的。因为底层的网络是继续数据的。除非远程调用,处理问题的核心在执行上。否则,数据的交互还是依赖于io操作的。所以,你也必须导入java,i。这个包。java的io操作也不复杂。它提供了针对于字节流和UniCode的读者和写者,然后也提供了一个缓冲用于数据的读写。bufferedreaderin-newbufferedreader(newinputstreamreader(server,getinputstreamO);printwriterout=newprintwriter(server,getoutputstream();上面两句就是建立缓冲并把原始的字节流转变为unicode可以操作。而原始的字节流来源于socket的两个方法,getinputstream()和getoutputstream()方法,分别用来得到输入和输出。五、相关图解及程序1 .体系结构设计一般的通信工具,都采用客户端/服务器体系结构。客户端/服务器的结构包含:客户端和服务端。客户端访问和处理服务器上的数据,服务器接收和处理客户端的数据请求。这种模式的好处就是可以将一个系统分为两个独立的部分进行开发设计,便于软件开发。而且也把一个软件的功能交给两个部分去完成,则更加有效的利用了系统资源。本程序中也采用了简单的客户端/服务器模式。由于本程序比较简单,仅演示客户端与服务端进行通信。2 .具体功能模块的分析由于该系统采用c/s模式,所以对功能模块进行划分时,就需要分服务器和客户端两部分进行。由于服务器的主要功能是等待接收并反馈客户端的信息,所以服务器需要信息输出模块和通信模块。其中通信模块包含信息发送模块和信息接收模块。而信息输出模块要做到当信息发生改变时及时更新。客户端同样也需要通信模块和信息输出模块,同时要互相通信,就要具备输入输出。具体模块划分见下图:六.测试结果及分析1.首先先打开服务器端口2.再打开客户端口,会有与服务器连接的显示即时通讯Server最近聊天消息发送取消3.分别点击Client和Server上面窗口显示的确定,然后开始聊天,界面如下。七.心得体会通过老师的指点和自己的努力,顺利地完成了该系统。伴随着当今互联网的迅速发展,网上通讯已经成为很多人的的一种交流方式,该系统的设计就是为了实现互联网上的即时通讯,它是利用当今最为流行的java编程语言来实现的即时通讯工具的雏形,其中涉及的很多方面都是java常用的技术或者难点。你可以通过该系统进行号码的申请,申请号码之后,你可以登录系统进行一些简单的操作和设置,比如添加好友以及好友分组等,然后你可以和好友进行交流以及,譬如即时发送、即时回复等。该系统可以运行在互联网或者局域网上,使用户可以很方便的进行信息的交流。通过本系统的实现,发现即时通讯具有很好的应用前景,而且功能会越来越完善,服务商所提供的服务也会越来越多,用户也越来越多,即时通讯软件本身的种类也在不断扩充,就一种即时通讯软件来讲也在不断的升级完善中。即时通讯的发展速度和应用可以说是Internet乃至整个世界的一个奇迹,我真诚的希望能有更多的科学工作者和专家加入到这一领域的研究中来八、参考文献1JAVA语言程序设计丁振凡主编清华大学出版社2JAVA编程思想原著:BruceEckel翻译:陈昊鹏机械工业出版社3计算机网络谢希仁编著电子工业出版社4利用SOCKET进行网络通信程序设计韩利凯西安大学联合学报5TCP/IP详解陈磊编著人民邮电出版社6IanF.Darwin.JaVa经典实例.北京:中国电力出版社,19997JAVA语言实用教程丁振凡编著北京邮电大学出版社

    注意事项

    本文(计算机网络 课程设计报告--即时通讯软件.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开