资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数 据 通 信 与 计 算 机 网 络 课 程 设 计 报 告 指导老师;苏军 学 院:计算机科学学院 专 业:2013 级电子信息科学与技术 组 长:学号: 组 员: 学号:2 组 员: 学号: 基于基于 SocketSocket 在线数据传输的设计与实现在线数据传输的设计与实现 摘摘 要要 近年来随着计算机技术的飞速发展,特别是 Internet 技术的发展, 已经深刻的改变到了人们生活的方方面面。这时过去的种种陈旧的 通讯方式,都已经不能满足现代生活的需要。人们希望能够用更低 廉的价格,更加方便快捷的方式,来实现即时通讯。这时开发一套 基于 Internet 技术的网络数据传输系统变得尤为重要。 Internet 是目前世界上最大的计算机互联网络,它遍布全球, 并将世界各地不同规模和大小的网络连接成为一个整体。目前基于 Internet 的应用已经非常多了,例如网上收发邮件、网上购物、网 上看电影等等。这些应用无不在改变人们的生活传统生活方式。 本课题主要研究的是基于 Socket 的数据传输软件,此软件分为 服务器程序和客户端程序,本课题的目标是能实现用户在客户端与 服务器端传递信息。主要研究开发内容是:熟悉系统开发平台,探 索在此开发平台下,利用 Socket 编程技术、TCP/IP 协议等进行聊天 软件的实际开发。 一一课程设计性质课程设计性质: 独立课设 二二课程设计目的和任务:课程设计目的和任务: 1、掌握数据通信和计算机网络的基本原理 2、掌握数据通信和计算机网络设计、分析和实现方法 3、提高学生编制网络通信程序、网络应用服务程序的能力 三课程设计基本内容及要求三课程设计基本内容及要求: 基本内容:网络数据通信的基本方法及实现。 基本要求:根据选定的项目,课题小组成员认真查阅相关资料, 发挥学生的主体作用,提出设计方案,老师参与,进行讨论和分析, 最终确定设计方案。在此基础上,合理分工,协同完成项目的设计 与实现,最后完成课程设计的报告撰写。 四课程设计平台四课程设计平台 基于 Eclipse 集成开发环境 五课程设计原理:五课程设计原理: 1. TCP/IP 协议协议 TCP/IP 是 Transmission Control Protocol/Internet Protocol 的简写,中文译名为传输控制协议/互联网络协议,该协 议是 Internet 最基本的协议,简单地说,就是由底层的 IP 协议和 TCP 协议组成的。TCP/IP 协议的开发工作始于 70 年代,是用于互联 网的第一套协议。 (1 1)TCP/IPTCP/IP 参考模型参考模型 TCP/IP 协议的开发研制人员将 Internet 分为五个层次,以便 于理解,它也称为互联网分层模型或互联网分层参考模型,如下所 示: 物理层:对应于网络的基本硬件,这也是 Internet 物理构成, 即我们可以看得见的硬设备,如 PC 机、互连网服务器、网络设备等, 必须对这些硬设备的电气特性作一个规范,使这些设备都能够互相 连接幷兼容使用。 网络接口层:它定义了将资料组成正确帧的规程和在网络中传 输帧的规程,帧是指一串资料,它是资料在网络中传输的单位。 互联网层:本层定义了互联网中传输的“信息包”格式,以及 从一个用户通过一个或多个路由器到最终目标的“信息包“转发机制。 传输层:为两个用户进程之间建立、管理和拆除可靠而又有效 的端到端连接。 应用层:它定义了应用程序使用互联网的规程。 (2 2)网际协议)网际协议 IPIP Internet 上使用的一个关键的底层协议是网际协议,通常称 IP 协议。我们利用一个共同遵守的通信协议,从而使 Internet 成 为一个允许连接不同类型的计算机和不同操作系统的网络。要使两 台计算机彼此之间进行通信,必须使两台计算机使用同一种“语言 “。通信协议正像两台计算机交换信息所使用的共同语言,它规定了 通信双方在通信中所应共同遵守的约定。 计算机的通信协议精确地定义了计算机在彼此通信过程的所有 细节。例如,每台计算机发送的信息格式和含义,在什么情况下应 发送规定的特殊信息,以及接收方的计算机应做出哪些应答等等。 网际协议 IP 协议提供了能适应各种各样网络硬件的灵活性,对 底层网络硬件几乎没有任何要求,任何一个网络只要可以从一个地 点向另一个地点传送二进制数据,就可以使用 IP 协议加入 Internet 了。 如果希望能在 Internet 上进行交流和通信,则每台连上 Internet 的计算机都必须遵守 IP 协议。为此使用 Internet 的每 台计算机都必须运行 IP 软件,以便时刻准备发送或接收信息。 IP 协议对于网络通信有着重要的意义:网络中的计算机通过安 装 IP 软件,使许许多多的局域网络构成了一个庞大而又严密的通信 系统。从而使 Internet 看起来好象是真实存在的,但实际上它是 一种幷不存在的虚拟网络,只不过是利用 IP 协议把全世界上所有愿 意接入 Internet 的计算机局域网络连接起来,使得它们彼此之间 都能够通信。 (3 3)传输控制协议)传输控制协议 TCPTCP 尽管计算机通过安装 IP 软件,从而保证了计算机之间可以发送 和接收资料,但 IP 协议还不能解决资料分组在传输过程中可能出现 的问题。因此,若要解决可能出现的问题,连上 Internet 的计算 机还需要安装 TCP 协议来提供可靠的幷且无差错的通信服务。 TCP 协议被称作一种端对端协议。这是因为它为两台计算机之 间的连接起了重要作用:当一台计算机需要与另一台远程计算机连 接时,TCP 协议会让它们建立一个连接、发送和接收资料以及终止 连接。 传输控制协议 TCP 协议利用重发技术和拥塞控制机制,向应用 程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即 使在 Internet 暂时出现堵塞的情况下,TCP 也能够保证通信的可 靠。 众所周知, Internet 是一个庞大的国际性网络,网络上的拥 挤和空闲时间总是交替不定的,加上传送的距离也远近不同,所以 传输资料所用时间也会变化不定。TCP 协议具有自动调整“超时值“ 的功能,能很好地适应 Internet 上各种各样的变化,确保传输数 值的正确。 因此,从上面我们可以了解到:IP 协议只保证计算机能发送和 接收分组资料,而 TCP 协议则可提供一个可靠的、可流控的、全双 工的信息流传输服务。 综上所述,虽然 IP 和 TCP 这两个协议的功能不尽相同,也可以 分开单独使用,但它们是在同一时期作为一个协议来设计的,幷且 在功能上也是互补的。只有两者的结合,才能保证 Internet 在复 杂的环境下正常运行。凡是要连接到 Internet 的计算机,都必须 同时安装和使用这两个协议,因此在实际中常把这两个协议统称作 TCP/IP 协议。 2 2 UDPUDP 协议协议 UDP(User Data Protocol,用户数据报协议)是与 TCP 相对应 的协议。它是面向非连接的协议,它不与对方建立连接,而是直接 就把数据包发送过去! UDP 适用于一次只传送少量数据、对可靠性要求不高的应用环 境。比如,我们经常使用“ping”命令来测试两台主机之间 TCP/IP 通 信是否正常,其实“ping”命令的原理就是向对方主机发送 UDP 数据 包,然后对方主机确认收到数据包,如果数据包是否到达的消息及 时反馈回来,那么网络就是通的。例如,在默认状态下,一次 “ping”操作发送 4 个数据包。大家可以看到,发送的数据包数量是 4 包,收到的也是 4 包(因为对方主机收到后会发回一个确认收到 的数据包) 。这充分说明了 UDP 协议是面向非连接的协议,没有建 立连接的过程。正因为 UDP 协议没有连接的过程,所以它的通信效 果高;但也正因为如此,它的可靠性不如 TCP 协议高。QQ 就使用 UDP 发消息,因此有时会出现收不到消息的情况。 3.Socket 编程编程 Socket 接口是访问 Internet 使用得最广泛的方法。 如果你 有一台刚配好 TCP/IP 协议的主机,其 IP 地址是 202.120.127.201, 此时在另一台主机或同一台主机上执行 ftp 202.120.127.201,显然无法建立连接。因“202.120.127.201“ 这台 主机没有运行 FTP 服务软件。同样, 在另一台或同一台主机上运行 浏览软件 如 Netscape,输入“http:/202.120.127.201“,也无法 建立连接。现在,如果在这台主机上运行一个 FTP 服务软件(该软 件将打开一个 Socket, 并将其绑定到 21 端口) ,再在这台主机上 运行一个 Web 服务软件(该软件将打开另一个 Socket,并将其绑定 到 80 端口) 。这样,在另一台主机或同一台主机上执行 ftp 202.120.127.201,FTP 客户软件将通过 21 端口来呼叫主机上由 FTP 服务软件提供的 Socket,与其建立连接并对话。而在 netscape 中 输入“http:/202.120.127.201“时,将通过 80 端口来呼叫主机上由 Web 服务软件提供的 Socket,与其建 立连接并对话。 在 Internet 上有很多这样的主机,这些主机一般运行了多个服 务软件,同时提供几种服务。每种服务都打开一个 Socket,并绑定 到一个端口上,不同的端口对应于不同的服务。Socket 正如其英文 原意那样,象一个多孔插座。一台主机犹如布满各种插座的房间, 每个插座有一个编号,有的插座提供 220 伏交流电, 有的提供 110 伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编 号的插座,就可以得到不同的服务。 在 Java 中所谓 Socket 通常也称作“套接字“,用于描述 IP 地址 和端口,是一个通信链的句柄。应用程序通常通过“套接字“向网络 发出请求或者应答网络请求。 以 J2SDK-1.3 为例,Socket 和 ServerSocket 类库位于 java.net 包中。ServerSocket 用于服务器 端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两 端都会产生一个 Socket 实例,操作这个实例,完成所需的会话。对 于一个网络连接来说,套接字是平等的,并没有差别,不因为在服 务器端或在客户端而产生不同级别。不管是 Socket 还是 ServerSocket 它们的工作都是通过 SocketImpl 类及其子类完成的。 重要的 Socket API:java.net.Socket 继承于 java.lang.Object,有八个构造器,其方法并不多,下面介绍使用 最频繁的三个方法,其它方法可以参见 JDK-1.3 文档。 Accept 方法用于产生“阻塞“,直到接受到一个连接,并且返回 一个客户端的 Socket 对象实例。“阻塞“是一个术语,它使程序运行 暂时“停留“在这个地方,直到一个会话产生,然后程序继续;通常“ 阻塞“是由循环产生的。 getInputStream 方法获得网络连接输入,同时返回一个 InputStream 对象实例。 getOutputStream 方法连接的另一端将得到输入,同时返回一 个 OutputStream 对象实例。 注意:其中 getInputStream 和 getOutputStream 方法均可能会产生一个 IOException,它必须被捕 获,因为它们返回的流对象,通常都会被另一个流对象使用。 服务器,使用 ServerSocket 监听指定的端口,端口可以随意指 定(由于 1024 以下的端口通常属于保留端口,在一些操作系统中不 可以随意使用,所以建议使用大于 1024 的端口) ,等待客户连接请 求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号