Java程序设计课件 第十二章网络程序设计_第1页
Java程序设计课件 第十二章网络程序设计_第2页
Java程序设计课件 第十二章网络程序设计_第3页
Java程序设计课件 第十二章网络程序设计_第4页
Java程序设计课件 第十二章网络程序设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java语言程序设计语言程序设计第十二章第十二章 网络编程网络编程 讲授人:傅晓阳 教授上章回顾上章回顾1. 实现多线程的两种方法是什么?2. 一个线程的生命周期图示是什么?如何启动一个线程?本章课程纲要本章课程纲要TCP和和UDP网络编程网络编程网络编程基础和网络编程基础和URL编程编程本课程纲要本课程纲要URL编程编程网络编程基础网络编程基础网络编程基础和网络编程基础和URL编程编程网络编程基础网络编程基础n TCP/IPn TCP/IP的主要功能是提供点对点的通信机制,的主要功能是提供点对点的通信机制,每个节点有一个唯一的地址。每个节点有一个唯一的地址。n Java网络软件包:n .*n

2、 网络通信模式:n URL通信模式通信模式n Socket通信模式(通信模式(TCP/IP)n Datagram通信模式通信模式(UDP)网络编程基础网络编程基础n IP协议(网间协议)n IP协议负责将消息从一个主机传递到另一个主协议负责将消息从一个主机传递到另一个主机。机。n TCP协议(传输控制协议)n TCP是一种面向连接的可靠传送服务。是一种面向连接的可靠传送服务。n UDP协议(用户数据报协议)n UDP是基于无连接、不可靠的数据报服务,在是基于无连接、不可靠的数据报服务,在传输过程中,不能提供数据包的重传。传输过程中,不能提供数据包的重传。本课程纲要本课程纲要URL编程编程网络编

3、程基础网络编程基础网络编程基础和网络编程基础和URL编程编程Internet地址n 在Internet上的计算机通过IP (Internet Protocol)地址标识n实例实例: 00n域名域名: n 类 .InetAddress用来表示Internet地址URL类n 类 URL 是网络资源定位器(Uniform Resource Locator), 指向网页(World Wide Web) 上的一个资源n 这里的资源可以是文件/目录,也可以是一些复杂的对象,如数据库或搜索引擎(search engine)URL的格式n (Protocol)(Host):PortFi

4、le#Referencen 实例n http:/localhost:8080/index.html#chapter1 n 43/java/n http:/ 大多数URL可以分成五个部分: n Protocol n Host n Port n File n Reference, 有时也称为有时也称为section 或或 anchorURL类的构造方法 URL( (Stringspec) 使用URL字符串形式作为参数创建 URL 对象。例如:URL jdurl=new URL(“http:/”);URL( (Stringprotocol, Stringhost,

5、 intport, Stringfile) 使用指定 protocol、host、port 号和 file 创建 URL 对象。例如:URL jdurl=new URL(“http”,”,”80”,”index.html”)URL( (Stringprotocol, Stringhost, intport, Stringfile, URLStreamHandlerhandler) 使用指定的 protocol、host、port 号、file 和 handler 创建 URL 对象。URL( (Stringprotocol, Stringhost, Stringfile) 使用指定的 prot

6、ocol 名称、host 名称和 file 名称创建 URL。URL类的成员方法 URL 类功能描述Object getcontent()获得URL的内容对象。int getDefaultPort()获得与此 URL 关联协议的默认端口号。String getFile() 获得此 URL 的文件名。如果没有设置文件名称,则返回null。String getHost()获得此 URL 的主机名,如果主机设置主机名称,则返回null。String getPath( )获得此 URL 的路径部分。如果路径设置不正确,则返回null。String getPort( )获得此 URL 的端口号。如果没有

7、设置端口,则返回null。URL类的成员方法 String getProtocol( )获得此 URL 的协议名称。如果没有设置协议,则返回null。String getRef( )获得此 URL 的引用名称。如果没有设置引用,则返回null。URLConnection openConnection( )返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。URI toURI()将URL转换成URI。 InputStream openStream( )打开一个输入流,以流(Stream)方式读入URL所指向的网络资源。boolean sameFile(URL o

8、ther)比较两个URL字符串是否相等,这里不包括引用部分。URLConnection类类n URLConnection类提供应用程序和指定的网类提供应用程序和指定的网络计算机之间进行通信方法络计算机之间进行通信方法n URLConnection类的构造方法:类的构造方法:n protected URLConnection (URL url)n URL url=new URL(“”);n URLConnection urlconn=url.openConnection(); URLConnection类建立网络连接的步骤类建立网络连接的步骤n 1)通过在通过在 URL 上调用上调用 openC

9、onnection 方法创建连接对象。方法创建连接对象。 n 2)设置连接后是否需要进行的读)设置连接后是否需要进行的读/写操作写操作的参数以及修改请求参数设置。的参数以及修改请求参数设置。n 使用成员方法setDoInput( )或setDoOutput( )可设置进行输入或输出连接的标志。n urlconn.setDoOutput(true); /建立输出连接;URLConnection类建立网络连接的步骤类建立网络连接的步骤n 3)使用)使用 connect 方法建立到远程对象的方法建立到远程对象的实际连接。实际连接。n urlconn.connect();n 4) 建立本机与建立本机与

10、URL指定网络计算机之间的指定网络计算机之间的数据流通道。使用数据流通道。使用getInputStream()成成员方法建立输入流,获取员方法建立输入流,获取URL指定的网络指定的网络信息;使用信息;使用getOutputStream()成员方成员方法建立输出流,向法建立输出流,向URL指定的网络节点传指定的网络节点传输数据信息。输数据信息。 URLConnection类常用的成员方法类常用的成员方法 URLConnection 类功能描述abstract void connect ()建立本机到URL指定的计算机之间的网络连接。int getConnectTimeOut()获得连接超时信息。

11、如果为0表示无超时设置,返回的整数表示超时的毫秒数。void setConnectTimeOut(int time)设置连接超时,其中参数time为允许连接超时的毫秒数。void setDoInput(boolean doinput)设置建立本机与URL指定的网络计算机之间的输入流标志。URLConnection类常用的成员方法类常用的成员方法 void setDoOutput(boolean doinput)设置建立本机与URL指定的网络计算机之间的输出流标志。InputStream getInputStream( )返回从此打开的连接读取的输入流。OutputStream getOutpu

12、tStream ( )返回从此打开的连接读取的输出流。Void setReadTimeOut (int time) 将读超时设置为指定的超时,以毫秒为单位。Int getReadTimeOut() 获得指定的超时时间设置,以毫秒为单位。InetAddress类类 n InetAddress类负责封装类负责封装Internet网络中主网络中主机地址。机地址。n InetAddress类的实例有主机名称和类的实例有主机名称和IP地址地址组成。组成。InetAddress类成员方法类成员方法 成员方法功能说明Byte getAddress()获取IP原始地址Static InetAddress ge

13、tAllByName(String host)根据主机名,获取所有IP地址Static InetAddress getByName(String host)根据主机名,获取IP地址Static InetAddress getLocalHost( )获取本地机IP地址InetAddress类成员方法类成员方法 String getHostAddress()获取主机地址,如:String getHostName( )获取主机名称Static InetAddress getByAddress(byte address)根据IP原始地址,返回InetAddress对象InetAd

14、dress类类 n 类 InetAddress 类不具有public的构造方法n 但可以通过下列方法构造:nstatic InetAddress getByAddress(byte addr) nstatic InetAddress getByName(String host) String s=;ts=InetAddress.getByName(s);System.out.println(ts.getHostAddress(); System.out.println(ts.getHostName();The IP address of is 1The host nam

15、e of is 本章课程纲要本章课程纲要TCP和和UDP网络编程网络编程网络编程基础和网络编程基础和URL编程编程本课程纲要本课程纲要基于基于UDP协议网络编程协议网络编程基于基于TCP协议网络编程协议网络编程TCP和和UDP网络编程网络编程基于基于TCP协议网络编程协议网络编程n 传输控制协议TCP (Transfer Control Protocol) 是一种基于连接的协议,可以在两台计算机之间提供可靠的数据传输n基于连接的协议基于连接的协议n服务器端与客户端通过服务器端与客户端通过TCP协议进行通讯协议进行通讯nTCP, 反过来反过来, 运用了运用了IP协议协议nIP 协议只用来处理数据

16、包协议只用来处理数据包基于基于TCP协议网络编程协议网络编程ServerSocket类类 n 服务端必须通过ServerSokcet类创建指定端口的Socket服务连接对象,并为每个新的连接创建一个Socket对象,并在这个指定的端口上监听客户端的请求。 n ServerSocket类的构造方法为:类的构造方法为:n ServerSocket(int port)n ServerSocket(int port, int backlog)n ServerSocket(int prot, int backlog,InetAddress bindAddr)ServerSocket类的主要成员方法类的主

17、要成员方法 成员方法功能说明Socket accept()监听网络连接,接收该连接并返回该连接的对象Void bind(SocketAddress endpoint)将服务端绑定到特定的IP地址上Void close()关闭服务端SocketInt getLocalPort()获取服务端在此Socket监听的端口ServerSocket类的主要成员方法类的主要成员方法 InetAddress getInetAddress( )获取服务端在Socket上所绑定的IP地址Void setSoTimeOut(int time)设置超时连接,其中time以毫秒作为单位Int getSoTimeOut获

18、取超时连接,其中返回值为设置超时的毫秒数服务端网络程序编程步骤服务端网络程序编程步骤 n 1)建立服务器)建立服务器Socket,注册服务端进行连接的注册服务端进行连接的端口号以及设置最大连接客户数;端口号以及设置最大连接客户数;n 2) 在指定端口上建立在指定端口上建立Socket对象,并监听客对象,并监听客户端的请求;户端的请求;n 3)在服务端建立输入输出数据流,通过数据流)在服务端建立输入输出数据流,通过数据流传输数据;传输数据;n 4) 通信完毕后,关闭套接字以及相关的输入输通信完毕后,关闭套接字以及相关的输入输出流。出流。n 参见例题参见例题13-3Socket类类 n Socke

19、t类是负责网络计算机通信的基本接口模块,类是负责网络计算机通信的基本接口模块,在服务端与客户端之间建立通信端点,通过流在服务端与客户端之间建立通信端点,通过流(Stream)操作,实现程序间的双向通信。操作,实现程序间的双向通信。 n Socket类的主要构造方法为:类的主要构造方法为:nSocket(InetAddress addr, int port)nSocket(InetAddress addr, int port, InetAddress localAddr, int localPort)nSocket(String host, int port)nSocket(String hos

20、t, int port, InetAddress localAddr, int localPort)Socket类的主要成员方法类的主要成员方法 成员方法功能说明Void bind(SocketAddress bindpoint)系统将挑选一个临时端口和本地IP地址绑定SocketInetAddress getInetAddress()获取Socket连接的远程IP地址InetAddress getLocalAddress()获取Socket连接的本地IP地址InputStream getInputStream() 获取Socket输入流OutputStream getOutputStream

21、()获取Socket输出流Int getPort()获取Socket连接的远程端口Socket类的主要成员方法类的主要成员方法 Int getLocalPort()获取Socket连接的本地端口Int getSoLinger()返回连接关闭后发送数据的延迟时间,单位为毫秒Void setSoLinger()设置连接关闭后发送数据的延迟时间,单位为毫秒Int getSoTimeOut()返回读数据的超时等待时间,单位为毫秒Void setSoTimeOut()设置读数据的超时等待时间,单位为毫秒Void shutdownInput()关闭输入流Void shutdownOutput()关闭输出流

22、客户端通信连接的步骤客户端通信连接的步骤 n 根据远程服务端的主机名和端口号,建立根据远程服务端的主机名和端口号,建立Socket套接字连接;套接字连接;n 建立客户端输入输出流,通过数据流进行数据传建立客户端输入输出流,通过数据流进行数据传输;输;n 通信完毕后,关闭通信完毕后,关闭Socket以及相关输入输出流。以及相关输入输出流。n 参见例题参见例题13-4本课程纲要本课程纲要基于基于UDP协议网络编程协议网络编程基于基于TCP协议网络编程协议网络编程TCP和和UDP网络编程网络编程基于基于UDP的网络编程的网络编程 n UDP是一种简单的不可靠的无连接的网络数据传输协议n 基于UDP网

23、络数据传输并不保证数据会顺利到达主机,也不保证数据包会按照发送的顺序到达指定的主机DatagramPacket类类 n DatagramPacket类将UDP中的数据封装成数据报包,数据报包中包含了发送的目的地址、发送的信息以及发送端的地址信息。n 接收数据报包构造方法:nDatagramPacket(byte buf, int length)nDatagramPacket(byte buf, int offset, int length)n 发送数据报包构造方法:nDatagramPacket(byte buf, int length, InetAddress addr, int port)nDatagramPacket(byte buf, int offset, int length, InetAddress addr, int port)DatagramPacket类的主要成员方法类的主要成员方法 成员方法功能说明InetAddress getAddress()获取发送数据报的目的地址Void setAddress( InetAddress iaddr)设置发送数据报的目的地址Byte getData()获取数据报中内容Void setData(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论