《CH11 Java网络编程.ppt》由会员分享,可在线阅读,更多相关《CH11 Java网络编程.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、设计、制作设计、制作:谭献海谭献海Email:第一节第一节JAVA概述概述1.1 JAVA1.1 JAVA概述概述nJava是什么?C+语言虽在计算机行业广为使用,但它的复杂与繁琐也令一般用户为之伤透脑筋。Java=“C+”-“复杂性和奇异性”+“安全性和可移植性”1 1JAVAJAVA概述概述nJAVAJAVA的定义的定义nJava有两方面的含义:Java语言、Java平台 作为一种语言,Java是一种跨平台开发语言,能开发出跨平台的应用对象和应用程序。例如:Oracle8i的安装程序就是用Java开发的。Java语言具有以下特点:简单、面向对象、分布式、解释执行、安全、跨平台、高性能、多线
2、程等。n作为一种平台,Java平台包括两部分内容:Java虚拟机和JavaAPI。1 1JAVAJAVA概述概述n用Java可以写两种类型的程序:小小 程程 序序(又叫Java AppletJava Applet)和应应 用用 程程 序序(Java ApplicationJava Application)。小程序是嵌入在HTML文档中的Java程序;而Java应用程序是从命令行运行的程序。对Java而言,Java小程序的大小和复杂性都没有限制。事实上,Java小程序有些方面比Java应用程序更强大。但是由于目前Internet通讯速度有限,因此大多数小程序规模较小。小程序和应用程序之间的技术差
3、别在于运行环境。Java应用程序运行在最简单的环境中,它的唯一外部输入就是命令行参数。而小程序则是通过浏览器来运行,需要来自Web浏览器的大量信息:它需要知道何时启动,何时放入浏览器窗口,何处、何时激活关闭。JAVAJAVA概述概述n随着Internet技术的发展和应用的推广,Java语言也不断有更新版本推出,以满足新的需求,java的版本从1.X演变到了java2,这时,为了在明显区分各种Java的应用,由分割出了J2EE、J2SE以及J2ME三种版本。1 1、J2SEJ2SEJ2SE(Java 2 Platform,Standard Edition)含有基本的Java 2 SDK、工具、运
4、行时(Runtime)和API,开发者可以用来编写、部署和运行Java应用程序和Applet。JAVAJAVA概述概述2 2、J2EEJ2EEJ2EE(Java 2 Platform,Enterprise Edition)建 立 在 J2SE的 基 础 之 上,它 是 JSP(Java Server Page)、Servlet、EJB(Enterprise JavaBean)、JTS(Java Transaction Service)、Java mail以及JMS(Java Message Service)等多项技术的混合体,并且还含有兼容性测试套件,主要用于开发分布式的、服务器端的多层结构的
5、应用系统,例如电子商务网站。3 3、J2MEJ2MEJ2ME(Java 2 Platform,Micro Edition)主要用于开发电子产品,例如移动电话、数字机顶盒、汽车导航系统等。1.2Java的的特特点点nSun公司这样形容自己的Java语言:它是一种简单、面向对象、分布式、解释型、稳定、安全、结构中立、易移植、高性能、多线程的动态语言。1.2Java的的特特点点(1)面向对象类、封装性、多态性、继承性、动态链接(2)操作平台无关性用Java语言编写的程序可以在任何一台计算机上运行,而不管该计算机使用何种操作系统,Java源程序源程序(.java文件文件)Java编译器编译器JavaB
6、ytecode(.class文件文件)系统执行平台系统执行平台Bytecode解释器解释器Bytecode载入器载入器字节码校验器字节码校验器Java是一种解释型语言。由于产生的是中间代码字节代码,而不是特定的机器码,因而与平台无关。n两种工作模式的比较源源程程序序SPARCPowerpcpentiumPowerpcpentiumSPARC编译器编译器二进制二进制源源程程序序Java编译器编译器SPARCpentiumPowerpc中中间间码码PowerpcpentiumSPARC二进制二进制Java解释器解释器Java程序编译运行过程虚拟机n为了做到Java的可移植性,Java引入了Java
7、虚拟机(Java Virtual Machine,JVM)的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。n在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机。n从结构上看,Java虚拟机由一组抽象的部件组成,这些部件包括指令集、寄存器组、类文件格式规定、堆栈、内存垃圾收集器和存储区6个部分。JAVA语言的安全性nJava取消了指针,杜绝了不怀好意的程序对内存恶意篡改
8、。nJava语言的安全机制基于“不存在可信任的代码”的概念。其运行环境提供了以下四级安全保障机制:字节码校验器类装载器运行时内存布局文件访问机制1.2Java的的特特点点n(4)多线程nJava提供现成的类Thread,只要继承这个类就可以编写多线程的程序。n(5)简单性nJava在形式上它和C/C+极为相似,但进行了精简。Java与C及C+的区别n不再有#include和#define等于处理功能n不再有structure,union及typedefn不再有函数、不再有指针、不再有多重继承n不再有goton不再有操作符重载(OperatiorOverloading)n取消自动类型转换,要求强
9、制转换丰丰 富富 的的 类类 库库 Java提 供 了 大 量 的 类 以 满 足 网 络 化、多 线 程、面 向对象系统的需 要。1.语 言 包 提 供 的 支 持 包 括 字 符 串 处 理、多 线 程 处 理、例外 处 理、数 学 函数 处 理 等,可 以 用 它 简 单 地 实 现 Java 程 序的 运 行 平 台。2.实 用 程 序 包 提 供 的 支 持 包 括 哈 希 表、堆 栈、可 变 数组、时 间 和 日 期 等。3.输 入 输 出 包 用 统 一 的 流 模 型 来 实 现 所 有 格式 的 I/O,包括 文 件 系 统、网 络、输 入/出 设 备 等。4.低 级 网 络
10、 包 用 于 实 现 URL、Socket、数据报等网络编 程方法。5.抽 象 图 形 用 户 接 口 包 实 现 了 不 同 平 台 的 计 算 机 的 图形用 户 接 口 部 件,包括 窗 口、菜 单、滚 动 条、对 话 框 等,使得 Java可 以 移 植 到 不 同平 台 的 机 器。6.网 络 包 支 持 Internet的 TCP/IP协 议,提 供 了 与 Internet的 接 口。它 支 持 URL连 接,WWW的 即 时 访 问,并 且 简 化 了 用 户/服 务 器 模型 的 程 序 设 计 1.3Java的开发环境q运行“j2sdk-1_3_1-win.exe”,按安装
11、向导进行安装。q解压“j2sdk-1_3_1-doc.zip”,得到JDK的开发文档。njavabinjavabin的目录下包含义下主要文件的目录下包含义下主要文件:Javac:Java 编译器,将Java源代码转换成字节码(byte code)。Java:Java 解释器,直接从类文件执行Java应用程序字节代码。appletviewer:小程序浏览器,一种执行HTML文件 上的Java小程序的Java 浏览器。Javadoc:API文档生成器,根据Java源码及说明语 句生成HTML文档。Java的开发环境Jdb:Java 调 试 器,可 以 逐 行 执 行 程 序,设 置 断 点 和 检
12、 查 变 量。Javah:头文件生成器,产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。Javap:Java 反 汇 编 器,显 示 编 译 类 文 件 中 的 可 访 问 功 能 和 数 据,同 时 显 示 字 节 代 码 含 义。Java的开发环境图图1.建建立立小小程程序序的的流流程程图图1.4 Java1.4 Java语言的应用前景语言的应用前景Java语言有着广泛的应用前景,大体上可以从以下几个方面来考虑其应用:1)所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等;2)计算过程的可视化、可操作化的软件的开发;3)动态画面的设计,包括图形图像的
13、调用;4)交互操作的设计(选择交互、定向交互、控制流程等);5)Internet的系统管理功能模块的设计,包括Web页面的动态设计、管理和交互操作设计等;6)Intranet(企业内部网)上的软件开发(直接面向企业内部用户的软件);7)与各类数据库连接查询的SQL语句实现;其它应用类型的程序。整数类型byte、short、int、long浮点类型float、double字符型char布尔类型boolean类class接口interface数组array基本类型引用类型数据类型Java支持的数据类型JAVA.IOJAVA.IO包中的包中的I/OI/O流概览流概览nJAVA.IO包 中 的 两 个
14、 基 本 流:InputStream和OutputStream。nInputStream继承了Object类,它有六个直 属 的 子 类,其 中 之 一 的FilterInputStream是一个抽象类,并有四个后代。n类似地,OutputStream继承了Object类,它有四个直属的子类,其中之一的FilterOutputStream是一个抽象类,并有三个子类。输入流FileInputStreamPipeInputStreamFilterInputStreamByteArrayInputStreamSequenceInputStreamStringBufferInputStreamData
15、InputStreamBufferedInputStreamLineNumberInputStreamPushBackInputStreamInputStream图图InputStream类的继承树类的继承树图InputStream类的继承树输出流PipeOutputStreamFilterOutputStreamByteArrayOutputStreamFileOutputStreamDataOutputStreamBufferedOutputStreamPrintStreamOutputStream图图OutputStream类的继承树类的继承树第二节第二节JAVA网络编程网络编程Java
16、Java中的网络支持中的网络支持nJAVA作为“网络上的世界语”,具有独特的网络优势与网络功能。正如Java的设计者Gosling所说,Java的设计就是为了“最大限度地利用网络”。nJava网络支持包括低层通信和高层协议实现n为了进行网络通信,JAVA提供了一个包,将该工具包与java中的输入/输出流相结合,就可以做到从网络上读取文件、数据或向网络写文件或数据时,可以象在本地磁盘上读写文件或数据一样容易和方便。JavaJava中的网络支持中的网络支持包中的主要的类和可能产生的例外包括:包中的主要的类和可能产生的例外包括:面向面向IP层的类:层的类:InetAddress面向应用层的类:面向应
17、用层的类:URL、URLConnection面向传输层的类:面向传输层的类:TCP协议相关类:协议相关类:Socket、ServerSocketUDP协议相关类:协议相关类:DatagramPacket、DatagramSocket、MulticastSocket可能产生的例外:可能产生的例外:BindException、ConnectException、MalformedURLException、NoRouteToHostException、ProtocolException、SocketException、UnknownHostException、UnknownServiceExcepti
18、onInetAddressInetAddress类类1 1GetHostNameGetHostName()()返返回回该该地地址址的的主主机机名名。如如果果主主机机名名为为nullnull,那那么么,当当前前地址指向当地机器的任一可得网络地址。地址指向当地机器的任一可得网络地址。返回值:类型为返回值:类型为 stringstring2 2GetAddressGetAddress()()以网络地址顺序来返回以网络地址顺序来返回IPIP地址地址返返回回值值:存存在在bytebyte型型的的字字节节数数组组中中,其其中中,最最高高序序字字节位于标值为节位于标值为0 0的元素中。的元素中。3 3Get
19、HostAddressGetHostAddress()()以以“%d%d%d%d%d%d%d%d”的形式返回的形式返回IPIP地址串。地址串。返回值:类型为返回值:类型为 stringstring4 4HashCodeHashCode()()返回该返回该InetAddressInetAddress对象的散列码。对象的散列码。返回值:类型为返回值:类型为intintInetAddressInetAddress类类5 5Equals(Object Equals(Object objobj)将当前对象与指定对象进行比较。将当前对象与指定对象进行比较。返回值:返回值:true true 相同相同 fa
20、lse false 不相同不相同6 6ToStringToString()()将该将该InetAddressInetAddress对象以字符串的形式表示出来。对象以字符串的形式表示出来。返回值:类型为返回值:类型为stringstring的实体对象。的实体对象。7 7GetByName(stringGetByName(string host)host)该该方方法法用用于于返返回回指指定定主主机机的的网网络络地地址址。如如果果主主机机名名为为nullnull,则则返返回回当当地地机机器器的的默默认认地地址址。为为了了加加速速对对地地址址的的访访问问,使使用用了了一一个个当当地地cashecash
21、e.如如果果地地址址未未知知,则则会会发生发生unknowHostExceptionunknowHostException例外。例外。参数:参数:host host 指定的主机。指定的主机。返回值:类型为返回值:类型为InetAddressInetAddressInetAddressInetAddress类类8 8GetAllByName(stringGetAllByName(string host)host)返回指定主机名的所有返回指定主机名的所有InetAddressInetAddress对象。对象。参数:参数:host host 指定的主机。指定的主机。返回值:存放于返回值:存放于Ine
22、tAddressInetAddress数组中。数组中。9 9GetLocalHostGetLocalHost 用于返回当地主机的用于返回当地主机的InetAddress对象。对象。如果无法决定主机名,则会发生如果无法决定主机名,则会发生unknowHostException例外。例外。n例1:获取本机的IP地址.*;publicclassgetLocalHostTestpublicstaticvoidmain()InetAddressmyIP=null;trymyIP=InetAddress.getLocalHost();catchUnknowHostExceptione)System.out
23、.println(myIP);创建inetAddress类不用构造函数(不用new)获取本机的IP地址下面的例子演示java如何根据域名进行DNS(与DNS服务器的连接只有一行).*;publicclassgetIPpublicstaticvoidmain(Stringargs)InetAddressswjtu=null;tryswjtu=InetAddress.getByName(“”);catch(UnknowHostExceptione)System.out.println(swjtu);例2根据域名自动到DNS上查找IP地址2.2.2URL网络编程网络编程2.2URL网络编程网络编程n
24、JAVA的.URL类和.URLConnection类使得编程者能很方便地利用URL在Internet上进行网络通信。n2.2.1URL概念概念URL(UniformResourceLocator)是统一资源定位器的简称,它提供了人和机器的导航,其功能是指向计算机里的资源,即定位。URL指明了取得资源采用的协议和资源地址及文件。URL格式:格式:协议名:协议名:/资源名资源名协议名:指明获取资源所用的传输协议,如:http、ftp、gopher、new、mailto、file等。资源名:是资源的完整地址,包括主机IP地址(或主机域名)、端口号、完整文件名、HTML文件中参考位置等。URL网络编程
25、网络编程 httphttp:/ 协议协议主机域名(主机域名(IPIP地址)地址)端口号端口号目录目录 文件名文件名 HTMLHTML参考点参考点 其中,其中,传传 输输 协协 议议 :说说 明明 访访 问问 资资 源源 时时 使使 用用 的的 网网 络络 协协 议议 。主主 机机 名名 称称 (host host name name):资资 源源 所所 在在 的的 主主 机机 的的 名名 称称 (IPIP地址)。地址)。文文 件件 名名(file file name)name):资资 源源 在在 机机 器器 上上 的的 完完 整整 名名 字字 。这这 里里 的的 文文 件件 名名 并并 不不
26、是是 简简 单单 的的 名名 字字 ,它它 要要 包包 括括 文文 件件 的的 完完 整整 的的 路路 径径 名名 ,这这 样样 我我 们们 才才 能能 直直 接接 通通 过过 文文 件件 名名 访访 问问 到到 一一 个个 文文 件件 。端端 口口 号号 (port port numbernumber):连连 接接 时时 所所 使使 用用 的的 服服 务务 器器 端端 口口 号号 。省。省 略时表示标准端口号,如略时表示标准端口号,如http:80,telnet:23http:80,telnet:23等等 。参参 考考 点点 (reference reference):资资 源源 中中 的的
27、 特特 定定 位位 置置 ,用用 来来 标标 识识 一一 个个 文文 件件 中中 特特 定定 的的 偏偏 移移 位位 置置 。通通 过过 参参 考考 点点 我我 们们 可可 以以 对对 一一 个个 文文 件件 中中 感感 兴兴 趣趣 的的 部部 分分 创创 建建 URL URL 对对 象象 。URL网络编程网络编程n2.2.2 URL2.2.2 URL类类URL类提供的最基本的网络功能是以流的形式读取URL所指的的数据。由URL类生成的对象指向WWW资源(如WEB页、文本文件、图形图象文件、音频视频文件等等)。n建立URL对象后就可使用通用的格式取得URL的各个部分的信息和获取URL内容。UR
28、L网络编程网络编程n2.2.3 2.2.3 四种四种URLURL构造方法构造方法 (1)URL(String spec)(1)URL(String spec)简单地用一个字符串生成URL对象,例如:URL url0=newURL(http:/ protocol(2)URL(String protocol,String hostString host,String file)String file)由用户分开指定URL各个部分、但采用缺省端口构成URL对象,例如:URLurl1=newURL(http,/YFjava/java7.html);(3)URL(String protocol(3)UR
29、L(String protocol,String hostString host,intint port port,String file)String file);由用户分开指定URL各个部分构成URL对象,如:URL url2=new URL(http,80,/YFjava/java7.html);n 注意:2、3构造方法不能构造含有“参考点”的URL地址。URL网络编程网络编程(4)URL(URL context(4)URL(URL context,String spec)String spec)构造相对构造相对URLURL对象,如:对象,如:nURL URL base1base1=ne
30、w URL(=new URL(httphttp:/:80/80/YFjavaYFjava/);URL url3=new URL(URL url3=new URL(base1base1,java7.html)java7.html);n再如:再如:nURL URL base2base2=new URL(=new URL(httphttp:/:80/80/YFjava/YFjava/java7.htmljava7.html);URL url4=new URL(URL url4=new URL(base2base2,#bookmark)#bookmark);n注:这种方法常用于注:这种方法常用于Jav
31、a AppletJava Applet,如:如:nURL url1=new URL url1=new URL(getDocumentBaseURL(getDocumentBase()(),file1.txt)file1.txt);n或或 URL url2=new URL url2=new URL(getCodeBaseURL(getCodeBase()(),file2.txt)file2.txt);n在类在类AppletApplet中提供了方法中提供了方法getCodeBasegetCodeBase()()和和getDocumentBasegetDocumentBase()(),它们分别返回嵌
32、有它们分别返回嵌有AppletApplet的的HTMLHTML文件和文件和AppletApplet字节码文件的字节码文件的URLURL地址,地址,多数情况下,这两个返回值是相同的,但是如果在多数情况下,这两个返回值是相同的,但是如果在HTMLHTML的的APPLETAPPLET单元单元中由属性中由属性CODEBASECODEBASE指定的指定的AppletApplet字节码文件的字节码文件的URLURL地址与地址与HTMLHTML文件不文件不同,则二者的返回值将会不同。同,则二者的返回值将会不同。URL网络编程网络编程n/Methods public boolean equals(Object
33、 obj);/将该URL对象与给定的URL对象比较npublic final Object getContent();/用于从打开的连接中获取信息npublic String public String getFile()();/返回网络资源的文件返回网络资源的文件名名public String public String getHost()();/返回主机名返回主机名public public intint getPort()();/返回通信端口号返回通信端口号public String public String getProtocol()();/返回通信协议返回通信协议public St
34、ring public String getRef()();/返回参考点返回参考点URL网络编程网络编程npublic public intint hashCodehashCode()();/生成一个与散列表索引相对的整数值生成一个与散列表索引相对的整数值npublic public URLConnectionURLConnection openConnectionopenConnection()();/生成URLConnection对象npublic final public final InputStreamInputStream openStreamopenStream()();/打开数
35、据流打开数据流npublic public booleanboolean sameFilesameFile(URL(URL other)other);/将该将该URLURL的数据与给定的的数据与给定的URLURL的数据比较,其中不包括参考点的比较的数据比较,其中不包括参考点的比较npublic static void public static void setURLStreamHandlerFactorysetURLStreamHandlerFactory(URLStreamHandlerFactory(URLStreamHandlerFactory facfac);/用于设置用于设置URL
36、StreamHandlerURLStreamHandler制造工厂制造工厂npublic String public String toExternalFormtoExternalForm()();/将该URL对象以字符串的形式表示npublicStringtoStringtoString();/将将该将将该URL对象的内容转换成字符串的对象的内容转换成字符串的形式形式URL网络编程网络编程n2.2.4异常处理异常处理URL类的构造方法都可能发生MalformedURLException非运行时异常,因此生成URL对象时,必须对这一异常进行处理。tryURLmyURL=newURL(http:
37、/java, 1Connect()Connect()2 2GetRULGetRUL /返回连接的返回连接的URLURL3 3GetContentLengthGetContentLength()()4 4GetContentTypeGetContentType()()5 5GetContentEncodingGetContentEncoding()()6 6GetExpirationGetExpiration()/()/返回该对象的终止期返回该对象的终止期7 7GetDateGetDate()()8 8GetLastModifiedGetLastModified()()9 9GetHanderF
38、ield(stringGetHanderField(string name)/name)/根据给定的名称返回标题域;根据给定的名称返回标题域;namename:标题域的名称标题域的名称1010GetHanderFieldInt(stringGetHanderFieldInt(string name,intname,int default)/default)/根据给定的名根据给定的名称返回标题域;称返回标题域;namename:标题域的名称;标题域的名称;defaultdefault:如果出错,则返回该如果出错,则返回该缺省值缺省值URLURL的双向通信的双向通信1111GetHanderFie
39、ldDate(stringGetHanderFieldDate(string name,long default)/name,long default)/根据给根据给定的名称返回标题域日期;定的名称返回标题域日期;namename:标题域的名称;标题域的名称;defaultdefault:如果如果出错,则返回该缺省值出错,则返回该缺省值1212GetHanderFieldKey(intGetHanderFieldKey(int n)/n)/返回第返回第n n个标题域的关键字个标题域的关键字1313GetHanderField(intGetHanderField(int n)/n)/返回第返回第
40、n n个标题域的值个标题域的值1414GetContentGetContent()/()/获取由该获取由该URLURL指定的对象指定的对象1515GetInputStreamGetInputStream()/()/获取一个从对象读取数据的输入流获取一个从对象读取数据的输入流1616GetOutputStreamGetOutputStream()/()/获取一个向对象写数据的输出流获取一个向对象写数据的输出流1717ToStringToString()/()/返回该返回该URLURL连接的字符串表示形式连接的字符串表示形式1818SetDoInput(BooleanSetDoInput(Bool
41、ean doinputdoinput)/URL)/URL可以用于输入可以用于输入1919GetDoInputGetDoInput()()2020SetDoOutput(BooleanSetDoOutput(Boolean doouputdoouput)/URL)/URL可以用于输出可以用于输出2121GetDoOutputGetDoOutput()()2222SetAllowUserInteraction(BooleanSetAllowUserInteraction(Boolean allowuserinteractonallowuserinteracton)/允许用户交互允许用户交互2323
42、GetAllowUserInteractionGetAllowUserInteraction()()URLURL的双向通信的双向通信2424SetDefaultAllowUserInteractionSetDefaultAllowUserInteraction(Boolean (Boolean defaultuserinteractiondefaultuserinteraction)2525GetDefaultAllowUserInteractionGetDefaultAllowUserInteraction()()2626SetUseCaches(BooleanSetUseCaches(Bo
43、olean usecachesusecaches)2727GetUseCachesGetUseCaches()()2828SetModifiedSince(longSetModifiedSince(long ifmodifiedsinceifmodifiedsince)2929GetIfModifiedSinceGetIfModifiedSince()()3030SetDefaultUseCaches(BooleanSetDefaultUseCaches(Boolean defaultusecachesdefaultusecaches)3131GetDefaultUseCachesGetDef
44、aultUseCaches()()3232SetRequestProperty(stringSetRequestProperty(string key,string value)key,string value)3333GetRequestPropertyGetRequestProperty()()3434SetDefaultRequestProperty(stringSetDefaultRequestProperty(string key,string value)key,string value)3535GetDefaultRequestPropertyGetDefaultRequestP
45、roperty()n用URLConnection类实现页面的访问使用URLConnection类来访问Web页面的步骤如下:(1)调用URL类的openConnection()方法得到一个URLConnection类的实例:URLConnectionconn=url.openConnection();(2)调用以下方法,设置所有相关属性:nsetAllowUserInteraction()nsetDoInput()nsetDoOutput()nsetIfModifiedSince()nsetUseCaches()nsetRequestProperty()(3)调用connect()方法连接远程
46、资源:conn.connect();connect()方法除了创建一个连接指定服务器的套接字连接外,还可以查询服务器以获取相应头信息(headerinformation)。URLURL的双向通信的双向通信(4)连接服务器以后,使用getHeaderFieldKey()和getHeaderField()方法来枚举出头信息的所有域。此外,也可以使用如下的方法来查询标准域的内容:getContentEncoding()getContentLength()getContentType()getDate()getExpiration()getLastModified()URLURL的双向通信的双向通信(
47、5)使 用 getInputStream()方 法 访 问 资 源 数 据。用 getInputStream()方法将返回一个输入流,此输入流和URL类的openStream()方法返回的输入流是相同的。URLURL的双向通信的双向通信2.2.3SOCKET通信通信3.Socket3.Socket通信通信n3.1JAVA socket3.1JAVA socket类类ServerSocket类(服务器socket类)Socket类SocketInputStream类SocketOutputStream类3.1JAVA socket3.1JAVA socket类类ServerSocketServe
48、rSocket类(服务器端)类(服务器端)1 1ServerSocketServerSocket(int(int port)port)在指定端口上生成一个服务器套接字2ServerSocketServerSocket(int(int port,intport,int count)count)在指定端口上生成一个服务器套接字,并且指定与端口间的连接进行监听的次数。3GetInetAddressGetInetAddress()()返回该套接字所连接的IP地址值4GetLocalPortGetLocalPort()()返回该套接字所连接的端口号5AccessAccess()()以阻塞方式接受一个连接
49、6Close()Close()关闭套接口3.1JAVA socket3.1JAVA socket类类n7ToStringToString()()n返回该serverSocket实体对象值的字符串表示形式(包括该对象的执行地址、端口等信息)n8SetSocketFactarySetSocketFactary(socketInplFactory(socketInplFactory facfac)n这是一个synchronized的类方法,用于设置系统的服务器socketImplFactory接口(该接口为socketImpl实体对象(即SOCKET的实现类)定义一个制造工厂)3.1JAVA socket3.1JAVA socket类类socketsocket类(客户端)类(客户端)1 1SocketSocket(string(string host,inthost,int protprot)2SocketSocket(string(string host,inthost,int port,Boolean stream)port,Boolean stream)3SockeSocket(InetAddresst(InetAddress address,intaddress,int port)port)4SocketSocket(InetAddress(InetAddress addre
限制150内