Java第八章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.2.1 URL类
2.URL类的常用方法 创建URL对象后,就可以使用.URL类的方法对创 建的对象进行处理。 (1)public String getProtocol():获得协议名,如果没有 协议被设置,则返回null。 (2)public String getHost():获得主机名,如果没有协议 被设置,则返回null。 (3)public int getProt():获得端口号,如果没有协议被 设置,则返回-1。
8.2.2 URLConnection类
1.创建URLConnection对象 创建URLConnection类的对象之前必须首先创建一个URL对 象,然后调用该对象的openConnection()方法就返回一个对应 其URL地址的URLConnection对象。例如: URL url=new URL(""); URLConnection connect=url.openConnection();
8.2.2 URLConnection类 2.URLConnection的方法 在创建URLConnection对象之后,就可以使用下面的方法完 成相应的操作。 (1)public Object getContent() throws IOException:获取资 源内容。 (2)public int getContentLength():获取资源信息的长度。 (3)public String getContentType():获取资源信息的类型。 (4)public long getDate():获取资源的当前日期。
Java网络编程
张春凤
目录
8.1 网络程序设计基础知识
8.2 URL编程
8.3 Socket编程 8.4 Datagram编程
8.1 网络程序设计基础知识
8.1.1 TCP/IP简介 TCP/IP是Internet中的基本通信协议。其中,IP(Internet Protocol,互联网协议)是支持网间互连的数据报协议,它提 供网间连接的完善功能。TCP(Transmission Control Protocol, 传输控制协议)常常和IP放在一起,它提供了一种可靠的数 据信息传递服务。 UDP(User Datagram Protocol,用户数据报协议)是一种面 向非连接的协议,它不与对方建立连接,而是直接把数据包 发送过去,它提供的是面向事务的简单不可靠信息传送服务。 与TCP不同,UDP并不提供对IP的可靠机制、流控制以及错误 恢复功能等。
8.2.1 URL类
(3)public URL(String protocol, String host, String port, String file):该方法与(2)比较不同之处在于,在构造一个URL对象 时,指定了端口号。例如: URL myurl=new URL("http","", 80,"index.html"); (4)public URL(URL content, String str):该方法通过一个表 示URL地址的字符串构造一个URL对象。例如: URL myurl=new URL(myurl,"setup/local.html");
8.1.2 地址、域名与端口号
所有连入互联网的终端设备都有一个唯一能被网络识 别的标识,这个标识称为IP地址。目前互联网上的IP地址 大多由4字节组成,这种IP地址称做IPv4。在互联网上还存 在一种IP地址,这种IP地址由16字节组成,称做IPv6。 IPv4地址的一般表现形式为:X.X.X.X,其中X为0到255 的整数。IPv6地址由16字节组成,分为8段,每一段由2字 节组成(采用4个十六进制数表示),段与段之间用“:”隔 开。如A5E4:BD41:D2F4:45E0:B323:E231:B1E1:DD1A是 一个标准的IPv6地址。
8.3.2 Socket编程
1.Socket类 建一个Socket实例,其构造方法有以下4种: (1)public Socket(String host, int port) :创建一个数据流 Socket,并将它连到相应的端口上。 (2)public Socket(InetAddress host, int port):创建一个数据 流Socket,并将它连到相应的端口上。 (3)public Socket(String host, int port, InetAddress interface, int localPort):创建一个数据流Socket,并将它连到相应指定的 远端地址的端口上。 (4)public Socket(InetAddress host, int port, InetAddress interface, int localPort):创建一个数据流Socket,并将它连到相 应指定的远端地址的端口上。
8.1.3 InetAddress类
创建了InetAddress类的对象后,可以利用创建的对象调用 两个成员方法来获取InetAddress类实例对应的IP地址和域名: (1)public String getHostAddress():获取InetAddress对象 的IP地址。 (2)public String getHostName():获取InetAddress对象的 域名。
Байду номын сангаас
8.3.1 Socket的概念
对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以 下4个基本的步骤: (1)创建Socket。 (2)打开连接到Socket的输入/输出流。 (3)按照一定的协议对Socket进行读/写操作。 (4)关闭Socket。 包提供4类套接字: (1)Socket是TCP客户端API,负责处理客户端网络通信。 (2)ServerSocket是TCP服务器API,负责处理服务器端的网络通信。 (3)DatagramSocket是UDP端点API,用于发送和接收数据报。 (4)MulticastSocket是DatagramSocket的子类,在处理多播组时使用。
8.3.2 Socket编程 2.ServerSocket类 ServerSocket提供3种构造方法: (1)public ServerSocket(int port):在指定端口上创建一个 服务器Socket。如果端口号为0,则在任意可用的端口上创 建服务器Socket。如果连接数超过50,那么这个连接就会被 拒绝。 (2)public ServerSocket(int port, int queuelength):实现的 功能类似第1种,只是该Socket可以提供的最大连接数为 queuelength,如果连接数超过queuelength,那么这个连接就 会被拒绝。 (3)public ServerSocket(int port, int queuelength, InetAddress bindAddr):创建一个服务器Socket。
8.1.2 地址、域名与端口号
为了便于记忆,互联网的管理者引入了DNS(Domain Name System,域名系统)。DNS将IP地址和域名联系在一 起,当计算机通过域名访问互联网资源时,系统首先通过 DNS得到域名对应的IP地址,再通过IP地址访问互联网资源。
端口(Port)成为了应用程序与外界交流的出入口,它是一个16位的整数,用 于表示数据交给哪个通信程序处理,同一台计算机上不能有两个程序使用同一个端 口。端口分为3大类:
(1)公认端口(Well Known Ports)。 (2)注册端口(Registered Ports)。 (3)动态和(或)私有端口(Dynamic and/or Private Ports)。
8.1.3 InetAddress类
Java语言利用包中的InetAddress类对IP地址进行封 装。该类提供了操作IP地址的各种方法,类本身没有构造 方法,而是通过调用相关静态方法来创建InetAddress对象。 (1)public static InetAddress getByName(String host):根 据主机名创建一个InetAddress对象。主机名可以是域名,也 可以是IP地址。 (2)public static InetAddress getLocalHost():获得描述本 机IP的InetAddress对象。
8.2.1 URL类
(4)public String getFile():获得文件名,如果没有协议 被设置,则返回null。 (5)public String getPath():获得URL的路径部分。 (6)public String getQuery():获得URL的查询字符串部 分。 (7)public String getAuthority():获得URL的授权方。 (8)public final InputStream openStream():打开与此URL 的连接,并返回一个用于读取该URL资源的输入流。
8.2 URL编程
8.2.1 URL类 1.创建URL类的对象 URL类提供用于创建URL对象的构造方法有4个: (1)public URL(String str):该方法通过一个表示URL地址 的字符串构造一个URL对象。例如: URL myurl=new URL(""); (2)public URL(String protocol, String host, String file):该方 法通过指定协议、主机名和文件名构造一个URL对象,端口为 默认值。例如: URL myurl=new URL("http","","index.html");
8.3.2 Socket编程
可能出现的异常有两种:UnknownHostException(无法识 别主机)与IOException(无法建立连线时)。除此以外,客户 端可以通过两种方式连接服务器,一种是通过IP的方式连接服 务器,而另外一种是通过主机名方式来连接服务器。 Socket类中有如下两个重要的方法: (1)public InputStream getInputStream():获取Socket所发送 的信息。 (2)public OutputStream getOutputStream():获取Socket所接 收的信息。
8.2.2 URLConnection类 (5)public long getLastModified():获取资源的最后修改日 期。 (6)public String getHeaderField(int n):返回第n个头部字 段的值。 (7)public InputStream getInputStream() throws IOException: 获取输入流。 (8)public OutputStream getOutputStream() throws IOException:获取输出流。
8.3 Socket编程
8.3.1 Socket的概念 两个进程间可以通过一个双向的网络通信连接实现数据 交换,这种通信链路的端点被称为Socket(套接字)。套接 字是支持TCP/IP网络通信的基本操作单元,可以看做是不 同主机之间的进程进行双向通信的一种约定方式,用以区分 不同应用程序进程之间的网络通信与连接。 Socket有两种主要的操作方式:面向连接的和无连接的。 面向连接的操作使用TCP,无连接的操作使用UDP。
8.2.1 URL类
URL类的构造方法都声明抛弃非运行时例外 (MalformedURLException),因此生成URL对象时,必须要 对这一例外进行处理,通常是用try-catch语句进行捕获。格式 如下: try{ URL myURL= new URL(…) }catch (MalformedURLException e){ … }