资源预览内容
第1页 / 共52页
第2页 / 共52页
第3页 / 共52页
第4页 / 共52页
第5页 / 共52页
第6页 / 共52页
第7页 / 共52页
第8页 / 共52页
第9页 / 共52页
第10页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第11章网络编程要点2 2网络通信概念 u 网络:用物理链路将各个孤立的工作站或主机相连在一起,实现资源共享和通信3 3本章内容u网络通信概念uURLu基于TCP的Socket编程u基于UDP的Socket编程u基于SSL的Socket编程 u 网络通信的核心是协议。协议是指进程之间交换信息以完成任务所使用的一系列规则和规范。它主要包含两个方面的定义: 1)定义了进程之间交换消息所必需遵循的顺序 2)定义进程之间所交换的消息的格式u 网络协议是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流u 网络协议标准可分为两类:n事实标准:由厂家制定的,未经有关标准化组织审定通过,但由于广泛使用形成了事实标准n法定标准:经有关标准化组织审定通过的标准。国际上的标准化组织有:(1)国际电信联盟(ITU,International Telecommunication Union)(2)国际标准化组织(ISO,International Standards Organization)(3)Internet体系结构委员会(IAB,Internet Architecture Board)u ISO/ OSI RM:开放式系统互连参考模型,国际标准化组织给出的通用参考协议:n七层协议:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层 n没有得到市场的认可u TCP/IP: 传输控制协议/网间协议,是Internet的主要协议,在60年代由麻省理工学院和一些商业组织为美国国防部开发的ARPANET基础上诞生的n四层体系结构:应用层、传输层、网络层和网络接口层。在实际应用中,网络接口层包含数据链路层和物理层 n事实上的国际标准网络协议u 网络地址:网络上的计算机通过网络地址标识。两种表示方法:u IP地址:由点号分隔,4个整数,32位地址。每个32位IP地址被分割成两部分:前缀和后缀。地址前缀部分确定了计算机从属的物理网络;后缀部分确定了该网络上的一台计算机。例如:202.196.0.7 u 域名:将特定 IP 地址映射至字符串。例如: zzuli.edu 统一资源定位器(URL)的使用表示同一地址u 用类InetAddress的实例对象来封装网络地址,并获取其相关信息u 未提供构造方法。可用其成员方法获得对象u 类InetAddress的常用方法:u getLocalHost三/获取本地计算机的网络地址,包括本地机的域名和IP地址。本地机的网络地址可表示为“127.0.0.1 ”或“localhost”u getByAddress(byte addr)/获取addr指定的IP地址对应的网络地址u getByName (String host)/获取host指定的主机名或IP地址所对应的网络地址包中返回InetAddress对象,抛UnknowHostException【例11-1】获取网络地址的使用讲义u 其中:u 传输协议:指明获取资源所使用的网络传输协议,如 、ftp、file等u 主机名:指定资源所在的计算机,可以是IP地址,如127.0.0.1,也可以是主机名或域名,如u 一个计算机中可能有多种服务(应用程序),端口号用来区分不同的网络服务,如 服务的默认端口号是80,ftp服务的默认端口号是21等 :/ sun :8080/docs/index.html#j2sen端口号是一个整数,通常范围在065535之间(即16位二进制整数)n小于1024的端口号一般分配给特定的服务协议,如:nHTTP(超文本传输协议)的默认端口是80nFTP文件传送协议(File Transfer Protocol,简称FTP)的端口号是21(控制端口),20(数据端口)nTELNET(远程登录)的默认端口是23nSMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的默认端口是25n如果没有注明端口号, URL将使用默认的端口号 统一资源定位器(URL)的使用u URL(Uniform Resource Locator,URL):统一资源定位器(网络资源定位器),表示Internet上某一资源的地址, 只要按URL规则定义某个资源,那么网络上的其他程序就可以通过URL来访问它u URL的值通常由5部分组成,格式如下: 例如: :/ sun :8080/docs/index.html#j2se:/:/ n文件名:包括该文件的完整路径。在 协议中,缺省的文件名是index.html,因此:n引用:为资源文件内部的某个引用,用来定位显示文件内容的位置,如 :/java.sun /index.html#chapter1n并非所有的URL都包含这些元素。对于多数的协议,主机名和文件名是必需的,但端口号和文件内部的引用则是可选的 :/java.sun 等同于 :/ sun :8080/docs/index.html#j2seu Java中,一个URL类的对象代表一个URL资源u 常用构造方法:nURL(String spec) /参数指定协议、主机名、端口号、文件名nURL(String protocol ,String host, String file) /参数指定协议名、主机名、文件名nURL(String protocol ,String host, Sting port,String file)/参数指定协议名、主机名、端口号、文件名 u 例如:tryURL u = new URL( :/ zzuli.edu ); catch( MalformedURLException e)u 常用方法:u getProtocol三 u getHost三 u getPort三u getFile三u u openStream三u /与指定的URL建立连接并返回一个InputStream类的对象取出URL的指定成分信息【例11-2】URL的使用讲义u 读取网络资源数据的步骤如下:u (1)创建类URL的实例对象,使其指向给定的网络资源u (2)通过类URL的成员方法openStream三建立起URL连接,并返回输入流对象的引用,以便读取数据u (3)通过或封装输入流u (4)读取数据,并进行数据处理u (5)关闭数据流u 其中,步骤(3)是可选的。当网络不稳定或速度很慢时,通过步骤(3)可以提高获取网络资源数据的速度 【例11-3】通过URL获取网络资源的使用import java.io.BufferedReader;import java.io.InputStreamReader;import .URL;public class URLReadDataUsepublic URLReadDataUse三try URL url=new URL( :/ zzuli.edu ); BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream( );String s; while (s=br.readLine( ) != null) /读取网络资源信息 System.out.println(s); /输出网络资源信息 br.close( ); catch (Exception e)System.err.println(e); e.printStackTrace( ); public static void main(String args)new URLReadDataUse三;URL资源的读取可能会引起堵塞,应在一个线程中读取,以免堵塞主线程显示URL资源中的html文件u 包中的JEditorPane容器可以解释执行html文件,也就是说,如果你把html文件读入到JEditorPane,该html文件就会被解释执行,显示在JEditorPane容器中,这样就可看到网页的运行效果网络编程11.3.1 Java网络编程概述 u最主要的工作就是在发送端把信息通过规定好的协议分封装成包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息u通过使用套接字来实现进程间的通信:端到端的连接与通信u网络上的两个程序(进程)通过一个双向的通信连接实现数据的交换,双向链路的一端称为一个socket(套接字)u 套接字:一种基于网络通讯的接口, 建立服务器和客户端之间的连接u 端口号与IP地址组合即为一个套接字: IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)u Java Socket:Java应用程序和网络协议的接口,提供若干个类的定义,提供网络上两台计算机之间(程序之间)交互通信的可靠连接 ,实现网络通信 u TCP Socket:使用TCP协议实现可靠的网络通信u UDP Socket:使用UDP协议实现效率较高的网络通信u SSL Socket:使用SSL协议实现安全的网络编程u 在Java网络编程中,一个套接字由:主机号、端口号和协议名三部分主要内容组成 uJava网络编程可在以下4个层次上进行:nURL层次,最高级层次,利用URL直接进行Internt上的资源访问和数据传输nSocket层次,常用网络编程方式,通过在Client/Server结构的应用程序之间建立Socket套接字连接,然后在连接之上进行数据通信。主动发起通信的一方被称为客户端;接收请求进行通信的一方被称为服务器nDatagram数据流层次,最低级层次,使用“用户数据报协议(UDP)”nSSL是基于加密和安全的网络编程 u 包中的Socket类实现了客户端的通信功能、ServerSocket类实现了服务器端的通信功能u 通过套接字建立连接的步骤: n服务器建立进程,创建一个ServerSocket对象,监听每个端口(客户端)是否要求进行通信n客户端创建一个Socket对象,包括连接的主机号和端口号,指定使用的通信协议,通过发出通信请求,试图与服务器建立连接 n服务器监听到客户端的请求,获得一个和客户端Socket相连接的Socket对象,与客户端进行通信 理解连接的建立u 如果要建立连接,一台机器必须运行一个进程来等待连接,而另一台机器必须试图到达第一台机器。这和 系统类似;一方必须发起呼叫,而另一方在此时必须等待 呼叫u 发起 呼叫时,必须知道所拨的 号码。如果要发起网络连接,你需要知道远程机器的地址或名字。此外,每个网络连接需要一个端口号,可以把它想象成 的分机号码。一旦和一台计算机建立连接,需要指明连接的目的。所以,就如同可以使用一个特定的分机号码来和财务部门对话那样,可以使用一个特定的端口号来和会计程序通信u 一个socket包括两个流:一个输入流和一个输出流u 建立网络连接之后,使用与socket相关联的流和使用其他流是非常相似的u 建立客户端和服务器两端相互通信的过程是一样的:n打开套接字;n打开到套接字的输入、输出流;n根据服务器协议读写套接字;n关闭套接字,通信结束前的清理工作u 尽管TCP/IP协议的名称中只有TCP这个协议名,但是在TCP/IP的传输层同时存在TCP和UDP两个协议u TCP是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作u UDP是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的u TCP协议是在端点与端点之间建立持续的连接而进行通信。建立连接后:u 发送端将发送的数据印记
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号