第8章 网络编程概述课程.ppt

  1. 1、本文档共197页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 网络编程概述 8.1 概述 8.2 URL编程 8.3 Socket编程简介 实训八 用Java实现网络通信 习题八 8.1 概 述 8.1.1 网络技术基础 Internet上的计算机之间采用TCP/IP协议进行通信,图8.1是TCP/IP协议体系的层次结构。TCP/IP没有对OSI参考模型中的物理层和数据链路层作出规定,只是定义了网络接口,使得TCP/IP协议可以运行在各种硬件设备上。TCP/IP协议的互联网层负责相邻结点之间的数据传送,处理网络的路由选择、流量控制和拥塞控制等问题。 使用Java语言编写网络通信程序通常是在应用层,对某些特殊的应用可能需要直接基于传输层协议编程,一般无需关心网络通信的具体细节,特别是互联网层和网络接口层。 传输层提供在源结点和目标结点的两个进程实体之间提供可靠的端到端的数据传输,TCP/IP模型提供了两种传输层协议,即传输控制协议TCP和用户数据报协议UDP。 TCP协议是面向连接的,在传送数据之前必须与目标结点建立连接,数据传输结束后关闭连接。而UDP是一种无连接协议,可直接传输数据,无需事先建立连接,直接发送带有目标结点信息的数据报。不同的数据报可能经过不同的路径到达目标结点,到达时的顺序与出发时的顺序也可能不同。 采用哪种传输层协议是由应用程序的需要决定的,如果可靠性更重要的话,用面向连接的协议会好一些。比如文件服务器需要保证数据的正确性和有序性,如果一些数据丢失了,系统的有效性将会失去。而有一些服务器是间歇性地发送一些数据块的,如果数据丢失,服务器并不需要再重新发送,因为当数据到达的时候,它可能已经过时了。确保数据的有序性和正确性需要额外的操作和存储空间,这将会降低系统的响应速率。 传输层的上一层是应用层,应用层包括所有的高层协议。早期的应用层有远程登录协议(Telnet)、文件传输协议(File Transfer Protocol ,FTP)和简单邮件传输协议(Simple MailTransfer Protocol ,SMTP)等。目前使用最广泛的应用层协议是用于从Web服务器读取页面信息的超文本传输协议(Hyper Text Transfer Protocol,HTTP)。 端口(Port)与IP地址一起为网络通信的应用程序之间提供一种确切的地址标识,IP地址标识了发送数据的目的计算机,而端口标识了将数据包发送给目的计算机上的哪一个应用程序,如图8.2所示。应用层协议通常采用客户/服务器模式,应用服务器启动后监听特定的端口,客户端需要服务时请求与服务器该端口建立连接。一些常用的应用服务都有缺省的端口(称为熟知端口),例如Web服务器缺省的端口号为80。 8.1.2 网络编程的基本方法 Java语言专门为网络通信提供了软件包。采用包提供的API可以快速方便地开发基于网络的应用。 包对http协议提供了特别的支持。只需通过URL类对象指明图像、声音资源的位置,无需额外的工作,就可以轻松地从Web服务器上获取图像、声音,或者通过流操作获取HTML文档及文本等资源,并可以对获得的资源进行处理。在本书4.1节的案例中从Web服务器下载广告图片就采用了这种方法,可以看出,使用这种方法下载图像是相当简单的。 包还提供了对TCP、UDP协议套接字(Socket)编程的支持,可以建立用户自己的服务器,实现特定的应用。Socket是一种程序接口,最初由California大学Berkeley分校开发,是用于简化网络通信的一种工具,是UNIX操作系统的一个组成部分。现在Socket的概念已深入到各种操作环境,包括Java。 8.2 URL 编 程 8.2.1 URL的概念 URL(Uniform Resource Locator,统一资源定位器)用来标识Internet上的资源,指明取得资源采用的协议和地址,通过URL可以访问Internet上相应的文件和其他资源。 典型的URL格式为 协议名://主机名:端口号/资源路径 协议名用于指明获取资源所用的传输协议,例如http、ftp、gopher等;主机名指明资源所在的计算机,端口号指明服务器的端口号,对于常用的一些协议(如http、ftp等),如果不指明端口号,则使用该协议缺省的熟知端口;资源路径指明该资源在服务器

文档评论(0)

hushuidhd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档