网络编程2ppt课件.ppt

上传人:本田雅阁 文档编号:3226284 上传时间:2019-08-02 格式:PPT 页数:28 大小:226.01KB
返回 下载 相关 举报
网络编程2ppt课件.ppt_第1页
第1页 / 共28页
网络编程2ppt课件.ppt_第2页
第2页 / 共28页
网络编程2ppt课件.ppt_第3页
第3页 / 共28页
网络编程2ppt课件.ppt_第4页
第4页 / 共28页
网络编程2ppt课件.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《网络编程2ppt课件.ppt》由会员分享,可在线阅读,更多相关《网络编程2ppt课件.ppt(28页珍藏版)》请在三一文库上搜索。

1、Tel:0571-88394222 QQ;106159278,网络编程2,Tel:0571-88394222 QQ;106159278,内容,UDP socket HTTP协议参考 RMI-远程方法调用 JavaMail,Tel:0571-88394222 QQ;106159278,UDP socket,它们是无连接的协议。 不保证消息的可靠传输。 它们由Java技术中的DatagramSocket和DatagramPacket类支持。 TCP/IP是面向连接的协议。而用户数据报协议(UDP)是一种无连接的协议。要区分这两种协议,一种很简单而又很贴切的方法是把它们比作电话呼叫和邮递信件。 电话

2、呼叫保证有一个同步通信;消息按给定次序发送和接收。而对于邮递信件,即使能收到所有的消息,它们的顺序也可能不同。,Tel:0571-88394222 QQ;106159278,UDP-DatagramPacket,DatagramPacket有两个构造函数:一个用来接收数据,另一个用来发送数据: DatagramPacket(byte recvBuf, int readLength)用来建立一个字节数组以接收UDP包。byte数组在传递给构造函数时是空的,而int值用来设定要读取的字节数(不能比数组的大小还大)。 DatagramPacket(byte sendBuf, int sendLeng

3、th, InetAddress iaddr, int iport)用来建立将要传输的UDP包。sendLength 不应该比sendBuf字节数组的大小要大。,Tel:0571-88394222 QQ;106159278,UDP-DatagramSocket,DatagramSocket用来读写UDP包。这个类有三个构造函数,允许你指定要绑定的端口号和internet地址: DatagramSocket()绑定本地主机的所有可用端口 DatagramSocket(int port)绑定本地主机的指定端口 DatagramSocket(int port, InetAddress iaddr)绑定

4、指定地址的指定端口,Tel:0571-88394222 QQ;106159278,public class Server public static void main(String args) throws IOException DatagramSocket ds = new DatagramSocket(30000); byte buf = new byte1024; DatagramPacket dp = new DatagramPacket(buf, 1024); System.out.println(“server is runing “); ds.receive(dp); Str

5、ing strRecv = new String(dp.getData(), 0, dp.getLength() + “ from “ + dp.getAddress().getHostAddress() + “:“ + dp.getPort(); System.out.println(strRecv); ds.close(); System.out.println(“server is closed!“); ,Tel:0571-88394222 QQ;106159278,public class Client public static void main(String args) thro

6、ws IOException DatagramSocket ds = new DatagramSocket(); String str = “hello world“; DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName(“127.0.0.1“), 30000); ds.send(dp); ds.close(); ,Tel:0571-88394222 QQ;106159278,HTTP协议,Tel:0571-88394222 QQ;106159278,HTTP协议,

7、H T T P是一个简单的协议。客户进程建立一条同服务器进程的 T C P连接,然后发出请求并读取服务器进程的响应。服务器进程关闭连接表示本次响应结束。Telnet 80 可以在firefox 下面查看下访问网页的请求和响应。IE浏览器下面有httpwatch插件可以用的。,Tel:0571-88394222 QQ;106159278,HTTP请求和响应-例子,Tel:0571-88394222 QQ;106159278,Http 请求和响应,H T T P / 1 . 0请求的格式是: re q u e s t - l i n e headers ( 0或有多个) body (只对P O

8、S T请求有效) re q u e s t - l i n e的格式是: request request-URI HTTP版本号 支持以下三种请求: 1) G E T请求,返回re q u e s t - U R I所指出的任意信息。 2) H E A D请求,类似于G E T请求,但服务器程序只返回指定文档的首部信息,而不包含实际的文档内容。该请求通常被用来测试超文本链接的正确性、可访问性和最近的修改。 3) P O S T请求用来发送电子邮件、新闻或发送能由交互用户填写的表格。这是唯一需要在请求中发送b o d y的请求。使用P O S T请求时需要在报文首部C o n t e n t -

9、 L e n g t h字段中指出b o d y的长度。,Tel:0571-88394222 QQ;106159278,HTTP响应,H T T P / 1 . 0响应的格式是: s t a t u s - l i n e headers ( 0个或有多个) b o d y s t a t u s - l i n e的格式是: H T T P版本号 response-code re s p o n s e - p h r a s e,Tel:0571-88394222 QQ;106159278,HTTP首部字段,Tel:0571-88394222 QQ;106159278,响应代码,Tel:0

10、571-88394222 QQ;106159278,MIME类型,MIME的英文全称是“Multipurpose Internet Email Extension”,它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。服务器将MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。 Text. 文本,它用于描述不同类型的文本,包括通常的文本,PostScript和HTML,

11、虽然HTML不是一个可能的子类型。 Multipart. 多类型,指出此信息包括多种信息,不止一种类型。 Message. 用于标记不同类型的消息。 Application. 应用类型。 Image. 图象,用于标明图形文件。 Audio. 声音,用于标明声音文件。 Video. 影象,用于标明动画文件。,Tel:0571-88394222 QQ;106159278,基础知识,目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个

12、服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。 B/S结构,Tel:0571-88394222 QQ;106159278,Web基础,URIs 用来标识资源的 scheme:scheme-specific-part data Base64-encoded data included directly in a link; see RFC 2397 file A file on a local disk ftp An FTP server http A World Wide Web server using the Hypertext Transfer Proto

13、col gopher A Gopher server mailto An email address news A Usenet newsgroup telnet A connection to a Telnet-based service urn A Uniform Resource Name URL(资源的地址)和URN(资源的统一访问的名称) HTML HTTP MIME,Tel:0571-88394222 QQ;106159278,什么是远程方法调用?,RMI是远程方法调用的简称,象其名称暗示的那样,它能够帮助我们查找并执行远程对象的方法。通俗地说,远程调用就象将一个class放在A机

14、器上,然后在B机器中调用这个class的方法。 RMI是一种纯Java解决方案。在RMI中,程序的所有部分都由Java编写。 其过程对于最终用户是透明的:在进行现场演示时,如果不说它使用了RMI,其他人不可能知道调用的方法存储在其他机器上。当然了,二台机器上必须都安装有Java虚拟机(JVM)。,Tel:0571-88394222 QQ;106159278,RMI介绍,RMI特性使在客户计算机上运行的程序可以调用远程服务器机器上的对象的方法。它提供了程序员在网络环境进行分布式计算的能力。面向对象的设计要求每个任务都是由最适合那个任务的对象执行。RMI扩展了这个概念,它允许任务由最适合它的机器执

15、行。RMI定义了一套可以创建远程对象的远程接口。客户可以用和调用本地对象的方法相同的句法来调用远程对象的方法。RMI API提供了处理所有底层通信和访问远程方法所需的参数引用的类。 在所有分布式体系结构上,一个应用程序进程或对象服务器(监护者)向世界广播自身,这是通过使用本地机器(结点)上的名字服务进行注册来做到的。使用RMI时,一个称为RMI注册器的名字服务监护者在RMI端口上运行,它缺省地监听主机的1099IP端口。 RMI注册器包含了一张关于远程对象引用的内部表。对于每个远程对象,表中包含一个注册名和这个对象的引用。通过实例化和用不同的名字将对象多次绑定到注册器,就可以在表中存放一个对象

16、的多个实例。,Tel:0571-88394222 QQ;106159278,当一个RMI客户通过注册器绑定一个远程对象时,它将通过接口接收到关于远程实例化对象的本地引用,并通过这个引用和对象通信。其他机器需要调用的对象必须被注册到远程注册服务器,这样才能被其他机器调用。因此,如果机器A要调用机器B上的方法,则机器B必须将该对象导出到其远程注册服务器。注册服务器是服务器上运行的一种服务,它帮助客户端远程地查找和访问服务器上的对象。一个对象只有注册后,然后才能实现RMI包中的远程接口。,Tel:0571-88394222 QQ;106159278,RMI需要使用stub程序和Skeleton程序

17、,stub在客户端, Skeleton在服务器端。在调用远程方法时,我们无需直接面对存储有该方法的机器。 在进行数据通讯前,还必须做一些准备工作。 stub程序就象客户端机器上的一个本机对象,它就象服务器上的对象的代理,向客户端提供能够被服务器调用的方法。然后,Stub就会向服务器端的Skeleton发送方法调用,Skeleton就会在服务器端执行接收到的方法。 Stub和Skeleton之间通过远程调用层进行相互通讯,远程调用层遵循TCP/IP协议收发数据,Tel:0571-88394222 QQ;106159278,分布式对象,本地机器,网络,client,远程接口,被调用的对象,skel

18、eton,远程机器1,stub,代理,映射,远程接口,远程机器 i,Tel:0571-88394222 QQ;106159278,RMI调用,Tel:0571-88394222 QQ;106159278,说明,Stub:存根程序,一个客户端代理对象。负责处理与服务器端的网络通信。它知道怎么样使用socket在网络中进行调用和将参数映射到网络。 存根程序通过网络调用一个skeleton的服务的代理对象,它来处理分布式对象的通信,skeleton知道如何通过socket接受一个调用,将参数映射到java表达的方式 Skeleton将调用委托给分布式对象,分布式对象结束后将控制权给skeleton,

19、然后又给stub,转给客户端。 Stub和skeleton实现同一个接口(远程接口),stub复制了分布式对象的方法特征。实际上客户端只是调用一个空的stub,他知道如何处理网络问题,这叫做本地/远程透明性。,Tel:0571-88394222 QQ;106159278,创建好server 和client 端程序代码后, 对server端的实现了接口里的方法的那个类的.class文件,用Rmic class名产生stub程序,copy给客户端,以及接口也copy给客户端一份,Tel:0571-88394222 QQ;106159278,JavaMail,Java中收发邮件的api,在javax.mail包中 参考具体的例子 mail,Tel:0571-88394222 QQ;106159278,练习,用rmi写一个远程方法调用的例子,Tel:0571-88394222 QQ;106159278,联系方式,杭州和盈科技公司 Address:武林门金属大楼9楼 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1