java(教学0)韩建雷java-网络编程.ppt
《java(教学0)韩建雷java-网络编程.ppt》由会员分享,可在线阅读,更多相关《java(教学0)韩建雷java-网络编程.ppt(98页珍藏版)》请在三一办公上搜索。
1、第10章 网络编程,HTTP概述 URL URLConnection读写 InetAddres类 Socket 数据报,本章内容,HTTP概述,1.统一资源定位器URL URL-Uniform Resource Locator,表示Internet上某一资源的地址。浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。,2URL的组成protocol:/:port_number/file_name其中:协议名(protocol):指明获取资源所使用的传输协议,如http、ftp、gopher、file等。Host_name:资源名(resourceName)所在的主机。Port_nu
2、bmer:连接时所使用的通信端口号File_name:该资源在主机的完整文件名。,HTTP概述,例1:,协议名称,主机名,例2:http:/:80/Gamelan/network.html,-协议名:/主机名端口号文件名,文件,HTTP概述,3基于TCP/IP编程的两个协议目前在Internet上使用最为广泛的协议是TCP/IP协议 1)TCP 是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方在进行数据传输前必须进行连接(成对的两个socket之间必须建立连接)。,HTTP概述,2)UDPUDP是User Datagram Protoco
3、l的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址。它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。,HTTP概述,在Java语言中,可以使用三种方式实现网络编程:(1)URL编程(获取URL属性信息)(2)Socket编程(基于TCP 的C/S)(3)Datagram编程(UDP),HTTP概述,包-URL类-URLconnection类-Socket类-ServerSocket类-DatagramPacket类-DatagramSocket类-MulticastSocket类,TCP实现网络通信
4、,UDP实现网络通信,HTTP概述,URL,本节主要内容:URL构造方法URL类的其他方法URL相关的异常从URL读取WWW网络数据,1)public URL(String spec);使用URL对象的字符串spec来构造一个URL对象。例1:URL url=new URL(http:/www.),构造方法,2)public URL(URL baseurl,String spec);通过基地址URL和表示相对路径的字符串构造一个URL对象。例2:URL net263=new URL(http:/URL index263=new URL(net263,index.html),基地址,构造方法,3
5、)public URL(String protocol,String host,String file);通过协议名、主机名和文件名构造一个URL对象。例3:URL u1=new URL(http,/pages/G.html);,构造方法,4)public URL(String protocol,String host,int port,String file);通过协议名、主机名、端口号和文件名构造一个URL对象。例4:URL g1=new URL(http,“,80,“07/1208/16/3v2007j.html);,构造方法,URL类的其他方法,获取URL对象属性的方法:public
6、String getProtocol():获取该URL的协议名 public String getHost():获取该URL的主机名 public String getPort():获取该URL的端口号 public String getPath():获取该URL的文件路径,public String getFile():获取该URL的文件名 public String getRef():获取该URL在文件中的相对位置 public String getQuery():获取该URL的查询名,也可使用下列方法将URL对象的内容以字符串的形式来表示:String toString();String
7、 toExternalForm();,URL类的其他方法,与URL相关的异常,URL类的每个构造方法在URL地址残缺或无法解释时,都将抛出MalformedURLException异常。一般将相关语句放入trycatch语句块中。格式如下:try URL myURL=new URL()catch(MalformedURLException e)/exception handler code here,URL编程步骤:1)导入包;2)创建URL对象(URL构造方法)3)获取URL对象属性 或利用URL对象读入数据,例5:URL url1,url2,url3;try url1=new URL(“f
8、ile:/D:/image/example.gif”);url2=new URL(“http:/url3=new URL(url2,“test.gif”);catch(MalformedURLException e)DisplayErrorMessage();.,例6:获取URL对象属性,try/创建URL对象URL ur1=new URL(http:/输出URL对象的有关信息System.out.println(URL对象字符串:+ur1.toString();System.out.println(URL对象文件:+ur1.getFile();,System.out.println(URL对
9、象地址:+ur1.getHost();System.out.println(URL对象端口:+ur1.getPort();System.out.println(URL对象协议:+ur1.getProtocol();catch(MalformedURLException e)System.out.println(错误的URL对象。);,获取URL对象属性的运行结果,从URL读取WWW网络数据,URL类定义了openStream()方法用以读取URL地址的数据,其定义为:public final InputStream openStream()thorws IOException;,例7:从URL
10、中读取数据,URL google=new URL(“http:/);BufferedReader in=new BufferedReader(new InputStreamReader(google.openStream();String inputLine;while(inputLine=in.readLine()!=null)System.out.println(inputLine);in.close();.,从URL中读取数据的运行结果,基于URLConnection的读写,1.URLConnection类 URL的方法openStream()只能从网络上读取数据,而不能写。URLCon
11、nection是封装访问远程网络资源一般方法类,通过它可以建立与远程服务器的连接,检查远程资源的一些属性。,URL类中的方法openConnection()可以对URL指向的网络资源进行读写。public URLConnetion openConnection();作用:尝试连接URL指向的网络资源,然后返回封装了操作该连接的类的一个实例。,基于URLConnection的读写,例8:try/先创建一个URL对象url1 URL url1=new URL(http:/);/创建到url1的一个连接对象con URLConnection con=url1.openConnection();cat
12、ch(MalformedURLException)catch(IOException),2URLConnetion类中的常用方法 public InputStream getInputStream();public OutputStream getOutputStrem();public URl getURL();,基于URLConnection的读写,3.URLConnection读/写编程步骤 1)创建一个URL对象u1;2)使用URLConnection类中的openConnection()方法创建到URL的一个连接对象:URLConnection u1.openConnection()
13、成功,返回一个URLConnection对象不成功,抛出IOException异常 3)进行数据的读或写操作;4)关闭流,基于URLConnection的读写,4从URLConnection读,URLConnection类的读写渠道 getInputStream(),基于URLConnection的读写,例9:采用URLConection 从URL读取数据 String inputLine;System.out.println(gl.getContentLength();System.out.println(gl.getDate();System.out.println(gl.getLastM
14、odified();System.out.println(gl.getURL();System.out.println(gl.toString();,基于URLConnection的读写,URL google=new URL(http:/localhost:8080/examples/jsp/datatreat.jsp);BufferedReader in=new BufferedReader(new InputStreamReader(google.openStream();String inputLine;while(inputLine=in.readLine()!=null)System
15、.out.println(inputLine);in.close();,基于URLConnection的读写,从URLConection读取数据的运行结果,4.对RLConnection写,setDoOutput(true),getOutputStream(),什么情况下有必要向URL写信息呢?-表单(Form)与CGI有交互的网页-使用POST方式向CGI传送信息,基于URLConnection的读写,例10:向一个RLConnection写 URL url=new URL(http:/);URLConnection connection=url.openConnection();conne
16、ction.setDoOutput(true);PrintWriter out=new PrintWriter(connection.getOutputStream();out.println(string);out.close();,InetAddres类,类表示一个 Internet Protocol(IP)地址。应用程序必须使用方法 getLocalHost,getByName,或 getAllByName 来创建新的 InetAddress 实例。例11:InetAddress ia=new InetAddress();,其他方法 1)public byte getAddress()返
17、回这个 InetAddress 对象的原始 IP 地址。2)public static InetAddress getAllByName(String)throws UnknownHostException 给定主机名,确定该主机的所有 IP 地址。3)public static InetAddress getByName(String host)throws UnknownHostException 给定主机名,确定该主机的所有 IP 地址。4)public String getHostAddress()返回IP 地址串%d.%d.%d.%d,InetAddres类,5)public Str
18、ing getHostName()返回此地址的全限定主机名。6)public static InetAddress getLocalHost()返回本地主机。7)public String toString()把此IP 地址转换为 String 类型。上述1)-4)方法均要抛出UnknownHostException 异常。,InetAddres类,例12:InetAddress 获取 IP地址import.*;public class getip public static void main(String args)throws UnknownHostException InetAddre
19、ss ad=InetAddress.getByName(localhost);System.out.println(主机名:+ad.getHostName();System.out.println(主机地址:+ad.getHostAddress();System.out.println(ad.getCanonicalHostName();System.out.println(本地地址:+ad.getAddress();System.out.println(本地主机名:+ad.getLocalHost();,netAddress类获取IP地址,socket,Socket是网络程序中最常用的方式,
20、用于建立两个不同程序之间通过网络进行通信的信道。Java语言提供了两种Socket通信方式:TCP SocketUDP Socket,套接字是IP与端口的组合,可以分辨在internet上运行的程序,socket通信一般过程,Socket通常用来实现客户/服务器程序。为了让客户机知道如何与相应的服务进程建立通信联系,一般系统为一些常用的服务类型分配了默认端口号:,Socket进行C/S程序设计的一般连接过程:Server端监听某个端口是否有连接请求;Client端向Server端发出连接请求;Server端向Client端发回accpet消息。这样一个连接就建立起来,Server端和Clien
21、t端都可以通过send、write等方法与对方通信。,socket通信一般过程,Server,ServerSocket(port#),Socket socket=ServerSocket.accept(),接收连接,OutputStream,InputStream,Close Socket,Client,Socket(host,port#),与服务器建立连接,OutputStream,InputStream,Close Socket,socket,TCP协议 Socket通信,socket通信一般过程,例13:显示服务器与客户机间的通信(服务器端),PrintStream ps=null;Da
22、taInputStream dis=null;String username;ServerSocket serverSocket=null;Socket clientSocket=null;,try serverSocket=new ServerSocket(1111);catch(IOException e)System.out.println(“Error”+e);System.exit(1);,try clientSocket=serverSocket.accept();catch(IOException e)System.out.println(Accept failed.);Syst
23、em.exit(1);,创建服务器(端口号),定义数据成员,服务器等待网络连接,Socket编程步骤 应用Socket进行网络编程,基本结构都是包括下面4个步骤:(1)创建Socket;(2)打开连接到Socket的输入/出流;(3)按照一定的协议对Socket进行读/写操作;(4)关闭Socket。,socket通信一般过程,java在包中提供了Socket类,表示客户端创建对象来建立与服务器的连接。1.socket构造方法 Socket(InetAddress address,int port);Socket(String host,int port);Socket(String host
24、,int port,InetAddress localAddr,int localPort);Socket(InetAddress address,int port,InetAddress localaddr,int localPort);,例14:Socket client=new Socket(127.0.01.,80);Socket cc=new Socket(“”,80);2.读/写方法 1)public InputStream getInputStream()throws IOException 功能:从 Socket 中获得一个输入流,用于从 Socket 中读数据,抛出 I/O
25、异常。2)public OutputStream getOutputStream()throws IOException 功能:从 Socket 中获得一个输出流,用于从 Socket 中写数据,抛出 I/O 异常。3)public void close();关闭流,3基于TCP协议的的客户端编程步骤 1)创建一个指向一个服务器固定端口的Socket。例15:Socket sock=new Socket(“192.168.12.67”,8000);2)获得输入/输出流,进行数据的读/写操作。例16:/获取输入流 BufferedReader in=new BufferedReader(new
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 教学 韩建雷 网络 编程
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6509144.html