网络程序设计(java)第10章网络通信

上传人:沈*** 文档编号:247336650 上传时间:2024-10-18 格式:PPT 页数:59 大小:453KB
返回 下载 相关 举报
网络程序设计(java)第10章网络通信_第1页
第1页 / 共59页
网络程序设计(java)第10章网络通信_第2页
第2页 / 共59页
网络程序设计(java)第10章网络通信_第3页
第3页 / 共59页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,2024/10/7,1,网络程序设计,Network Programming,第十章 网络通信,赵建立,山东科技大学信息科学与工程学院,College of Information Science and Engineering,Shandong University of Science and Technology,主要内容,10.1,网络通信简介,10.2 URL,通信,10.3 Socket,通信,10.4,远程方法调用,(RMI),10.1,网络通信简介,网络通信的核心是协议。协议是指进程之间交换信息已完成任务所使用的一系列规则和规范。它主要包含两个方面的定义:,1,定义了进程之间交换消息所必需遵循的顺序。,2,定义进程之间所交换的消息的格式。,通过定义协议,可以看出,两个进程只要遵循相同的协议,就可以相互交换信息,而这两个进程可以用不同的编程语言编写,可以位于两个完全不同的计算机上。国际标准化组织给出了一个通用的参考协议,称为开放式系统互连参考模型,(ISO/OSI RM),。,图,14-1 ISO/OSI RM,分层图,主要内容,10.1,网络通信简介,10.2 URL,通信,10.3 Socket,通信,10.4,远程方法调用,(RMI),10.2 URL,通信,10.2.1 URL,简介,10.2.2 URL,类,10.2.3,通过字节流访问,WWW,资源,10.2.4,通过,URLConnection,实现双向通信,使用,HttpURLConnection,10.2.1 URL,简介,URL,用来网络资源定位,它的值由,5,部分组成,格式如下所示,:/:/,其中传输协议(,protocol,)指明获取资源所使用的传输协议,如,http,、,ftp,、,mms,等。主机名(,hostname,)指定资源所在的计算机,可以是,IP,地址,如,也可以是主机名或域名,如。一个计算机中可能有多种服务(应用程序),端口号(,port,)用来区分不同的网络服务,如,http,服务的默认端口号是,80,,,ftp,服务的默认端口号是,21,等。文件名(,filename,)包括该文件的完整路径。在,http,协议中,缺省的文件名是,index.html,,因此,,就相等同于,。引用(,reference,)为资源内的某个引用,用来定位显示文件内容的位置,如,http:/ URL,通信,10.2.1 URL,简介,10.2.2 URL,类,10.2.3,通过字节流访问,WWW,资源,通过,URLConnection,实现双向通信,使用,HttpURLConnection,10.2.2 URL,类,1,),URL(String spec),,,spec,为一个完整的,URL,地址,2,),URL(String protocol,String host,int port,String file),将一个,URL,地址分解,按不同部分分别指定协议、主机、端口、文件。例如:,URL u=new URL(,“,http,”,”,80,“”,);,3,),URL(URLcontext,Stringspec),这种方法基于一个已有的,URL,对象创建一个新的,URL,对象,多用于访问同一个主机上不同路径的文件,例如:,URL u=new URL(,“,http:/:80/docs/books/,”,);,URL u1=new URL(u,”,);,URL u2=new URL(u,”,);,【,例,10-1】URL,的使用,import java.io.*;,import .*;,public class URL1,public static void main(String args)throws IOException,URL url=new URL(http:/ port=+url.getDefaultPort();,System.out.println(File=+url.getFile();,System.out.println(Host=+url.getHost();,System.out.println(Path=+url.getPath();,System.out.println(Port=+url.getPort();,System.out.println(Protocol=+url.getProtocol();,System.out.println(Query=+url.getQuery();,System.out.println(Ref=+url.getRef();,System.out.println(User Info=+url.getUserInfo();,10,1,运行结果,10.2 URL,通信,10.2.1 URL,简介,10.2.2 URL,类,10.2.3,通过字节流访问,WWW,资源,通过,URLConnection,实现双向通信,使用,HttpURLConnection,10.2.3,通过字节流访问,WWW,资源,URL,对象创建后,就可以通过它来访问指定的,WWW,资源。这时需要调用,URL,类的,openStream(),方法,该方法与指定的,URL,建立连接并返回一个,InputStream,类的对象,这样访问网络资源的操作就变成了我们熟悉的,I/O,操作,接下来就可以用字节流的方式读取资源数据。,【,例,10-2】,通过,URL,对象访问资源,import java.io.*;,import .*;,public class URL2,public static void main(String args)throws IOException,URL url=new URL(,“”,);InputStreamReader isr=new InputStreamReader(url.openStream();BufferedReader br=new BufferedReader(isr);,String s;while(s=br.readLine()!=null)System.out.print(s);br.close();,10.2 URL,通信,10.2.1 URL,简介,10.2.2 URL,类,10.2.3,通过字节流访问,WWW,资源,通过,URLConnection,实现双向通信,10.2.5,使用,HttpURLConnection,通过,URLConnection,实现双向通信,实际应用中,只能读取数据是不够的,很多情况下,我们都需要将一些信息发送到服务器中去,这就要求我们能够实现同网络资源的双向通信,,URLConnection,类就是用来解决这一问题的。,类,URLConnection,也是定义在包,里,它表示,Java,程序和,URL,在网络上的通信连接。当与一个,URL,建立连接时,首先要在一个,URL,对象上通过方法,openConnection,()生成对应的,URLConnection,对象。,URLConnection,是以,HTTP,协议为中心的类,其中很多方法只有在处理,HTTP,的,URL,时才起作用。,1.,建立连接,URL url=new URL(,“”,);,URLConnection con=url.openConnection();,2.,向服务器端送数据,PrintStream ps=new PrintStream(con.getOutputStream();,ps.println(string_data);,3.,从服务器读数据,DataInputStreamdis=new DataInputStream(con.getInputStream();,dis.readLine();,【,例,10-3】URLConnection,的使用,import java.io.*;,import .*;,public class ComWithCgi,public static void main(String args)throws Exception,/,建立指向本地磁盘上,cgi,的,URL,对象,URL url=new URL(“http:/ connection=url.openConnection();,connection.setDoOutput(true);,PrintStream ps=new PrintStream(connection.getOutputStream();,ps.println(0123456789);,ps.close();/,向服务器输出数据,DataInputStream dis=new DataInputStream(connection.getInputStream();,String inputLine;,while(inputLine=dis.readLine()!=null),System.out.println(inputLine);,dis.close();/,从服务器读数据,10.2 URL,通信,10.2.1 URL,简介,10.2.2 URL,类,10.2.3,通过字节流访问,WWW,资源,通过,URLConnection,实现双向通信,10.2.5,使用,HttpURLConnection,10.2.5,使用,HttpURLConnection,HttpURLConnection,是,URLConnection,的子类。,HttpURLConnection,提供了对,Http,协议的支持,如果所访问的,URL,地址是一个,Http,地址,那么就可以使用,HttpURLConnection,。例如:,URL url=new URL(http:/);HttpURLConnection connection=(HttpURLConnection)url.openConnection();,但是要注意如果,URL,地址不是一个,http,地址,那么就无法用类型转换获取,HttpURLConnection,的实例。,由于,HttpURLConnection,是,URLConnection,的子类,因此,HttpURLConnection,具有,URLConnection,的全部,public,方法,,HttpURLConnection,的基本用法也与,URLConnection,相同。,HttpURLConnection,独特的方法,public void disconnect(),,断开与服务端的连接。,public InputStream getErrorStream(),,返回错误流(,Error Stream,),所谓错误流是指连接失败时服务端返回的有用数据,这些有用数据通常通过错误流返回。例如服务器端返回,404,错误时(表示所访问的文件无法找到)。,public String getRequestMethod(),,返回请求的类型,请求类型包括,Get,、,POST,、,HEAD,、,OPTIONS,、,PUT,、,DELETE,、,TRACE,。,public int getResponseCode(),,返回服务器端响应的状态字,例如,200,表示,OK,,,401,表示,Unauthorized,。,public String getResponseMessage(),,返回服务器端的响应消息,例如,“,HTTP/1.0 200 OK,”,或者,“,HTTP/1.0 404 Not Found,”,。,public void setRequestMethod(String method),,设置请求的类型,请求类型包括,Get,、,POST,、,HEAD,、,OPTIONS,、,PUT,、,DELETE,、,TRACE,。,public boolean usingPro
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!