Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(一)

2014-11-23 21:43:33 · 作者: · 浏览: 16



Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常;

-- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常);

-- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1异常), android.net.wifi 包 (16类, 1枚举), android.net.wifi.p2p 包 (9接口, 7类), android.net.wifi.p2p.nsd 包 (6类);



一. 权限相关类


1. Authenticator


类的全名称 :

public abstract class Authenticator extends Object

-- 作用 : 获取网络链接验证对象;

-- 使用方法 : 当需要获取一个带 口令 保护的文件的时候, 需要使用 用户名 和 密码 才能获取该文件的输入流, 如果遇到这种情况, 提示用户输入用户名 密码获取文件;


使用流程

1> 获取用户名密码

关键方法 :

protected PasswordAuthentication getPasswordAuthentication()
-- 重写方法 : 重写该方法, 在该方法中调用 该类中的其它方法, 获取关于请求验证的信息;

-- 用户输入 : 然后写一个 用户名密码输入框, 弹出该输入框, 通过用户输入获取用户名密码;

-- 返回结果 : 根据用户输入的 口令 密码 以及上面获取的请求验证信息, 返回 PasswordAuthentication 对象;


2> 验证


验证流程 :-- 注册验证类实例 : 调用 setDefault(Authenticator) 方法向系统注册实例;-- 验证 : 调用 requestPasswordAuthentication()方法;

public static void setDefault(Authenticator a)
-- 作用 : 设置 代理 或者 HTTP服务器 请求校验时 密码使用的 authenticator;


	public static PasswordAuthentication requestPasswordAuthentication(InetAddress addr,
            int port,
            String protocol,
            String prompt,
            String scheme)
-- 作用 : 要求向系统注册的 authemticator 提供密码;

-- 参数 : addr 请求授权站点的 InetAddress, port 请求链接端口, protocol 请求连接的协议, prompt 用户提示的字符串, scheme 验证方案;



2. PasswordAuthentication


类的全名称 :

public final class PasswordAuthentication extends Object
-- 作用 : 该类保存 Authenticator 使用的 用户名 和 密码;


构造方法 :

public PasswordAuthentication(String userName, char[] password)
-- 用法 : 根据传入的用户名 和 密码创建 PasswordAuthentication 对象;


获取用用户名密码的方法 :

-- 获取用户名方法 : public String getUserName() ;

-- 获取密码方法 : public char[] getPassword() ;



3. NetPermission


类的全名称 :

public final class NetPermission extends BasicPermission
-- 作用 : 用于各种网络权限, 包含一个名称, 没有动作列表;


权限解析 : 每个权限都有一个权限名称, 所允许的操作, 以及对应的风险;

-- setDefaultAuthenticator : 设置代理 或 HTTP 服务器请求验证, 获取验证信息的方式;

-- requestPasswordAuthentication : 设置 在系统中注册的 authenticator 可以提供密码;

-- specifyStreamHandler : 构造 URL 时指定流处理程序;

-- setProxySelector : 设置 建立网络连接时使用代理的 代理选择器;

-- getProxySelector : 获取 建立网络连接时使用代理的 代理选择器;

-- setCookieHandler : 设置 HTTP会话处理高度安全敏感的cookie 的 cookie 处理程序;

-- getCookieHandler : 获取 HTTP会话处理高度安全敏感的cookie 的 cookie 处理程序;

-- setResponseCache : 设置 本地响应缓存的访问权限;

-- getResponseCache : 获取 本地响应缓存的访问权限;

.



二. 地址相关类


1. InetAddress


类的全名称 :

public class InetAddress extends Object implements Serializable

作用 : 代表 IP 地址;

IP地址层级 : IP地址是一种低级的协议, UDP 和 TCP 都是在这个协议的基础上构建;


IP地址类型 :

-- 单播地址 : 用于当作单个接口标识符, 发送到单播地址的数据包 被发送到 由该地址标识的接口;

-- 多播地址 : 用于当作一组接口的标识符, 发送到多播地址的数据包被交付给由地址标识的所有接口;

-- 回送地址 : 分配给回送接口的地址, 发送到回送地址的任何内容, 都将当作本地主机的IP输入, 通常在测试客户机的时候使用这种类型的地址;


多播地址的注意事项 : 不能将多播地址分配给任何节点, 它是 anylocal 地址 或者 通配符地址, 服务器主机有多个接口的情况下接收任何接口上的客户端链接;


IP地址范围 :

-- 链接本地地址 : 在单个链接上寻址, 以解决诸如自动地址配置, 邻居发现, 或者没有路由器的问题;

-- 站点本地地址 : 不许要全局前缀时, 站点内部寻址;

-- 全局地址 : Internet中唯一的地址;


IP地址文本表现形式 : 有 IPv4 IPv6 两种格式;


主机名解析 :

-- 主机名到IP地址解析 : 使用 本地配置信息 和 网络命名服务 实现, 特定命名服务默认情况下 是本地机器配置的;

-- 反向名称解析 : 返回IP地址对应的主机名;


InetAddress 缓存 : 存储 主机名解析, 不管成功还是失败;

-- 默认缓存 : 正确解析的主机名 解析结果会永久保存, 如果解析失败 该记录只保存10秒;

-- 正主机名解析缓存 : 使用 networkaddress.cache.ttl 成功解析的缓存策略, 用于设置java安全属性设置为另外的 TTL 值进行正缓存;

-- 负主机名解析缓存 : 使用 networkaddress.cache.negative.ttl 解析主机名失败的缓存策略;



2. Inet4Address


类的全名称 :

public final class Inet4Address extends InetAddress	 
-- 作用 : 表示 IPv4 地址;


IP地址文本表示形式 :

-- 指定4部分 : d.d.d.d , 每个部分都是一个字节数据, 从左到右 分配给 IPv4 四个字节;

-- 指定3部分