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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(一)

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部分 : d.d.d , 最后一部分是2个字节, 放在最右边的网络地址上;


-- 指定2部分 : d.d , 最后一部份是3个字节, 放在最右边的三个字节上;


-- 指定1部分 : d , 直接存储在网络地址中, 字节不用重新排列;




多播地址范围 : IPv4 生存时间 (Time-to-live) 作为多播范围字段库增加一倍;


-- TTL = 0 : 表示节点本地;


-- TTL = 1 : 表示链接本地;


-- TTL = 32 : 表示站点本地;


-- TTL = 64 : 表示地区本地;


-- TTL = 128 : 表示大陆本地;


-- TTL = 255 : 表示全球;




3. Inet6Address



类的全名称 :



public final class Inet6Address extends InetAddress

-- 作用 : 代表 IPv6 地址;


目录
相关文章
|
28天前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
57 3
|
3月前
|
编译器 API Android开发
Android经典实战之Kotlin Multiplatform 中,如何处理不同平台的 API 调用
本文介绍Kotlin Multiplatform (KMP) 中使用 `expect` 和 `actual` 关键字处理多平台API调用的方法。通过共通代码集定义预期API,各平台提供具体实现,编译器确保正确匹配,支持依赖注入、枚举类处理等,实现跨平台代码重用与原生性能。附带示例展示如何定义跨平台函数与类。
107 0
|
27天前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
21 1
|
2月前
|
网络协议 算法 网络安全
CCF推荐A类会议和期刊总结(计算机网络领域)
本文总结了中国计算机学会(CCF)推荐的计算机网络领域A类会议和期刊,这些会议和期刊代表了该领域的顶尖水平,汇聚了全球顶尖研究成果并引领前沿发展。A类期刊包括IEEE Journal on Selected Areas in Communications、IEEE Transactions on Mobile Computing等;A类会议包括SIGCOMM、MobiCom等。关注这些平台有助于研究人员紧跟技术前沿。
CCF推荐A类会议和期刊总结(计算机网络领域)
|
2月前
|
传感器 算法 物联网
CCF推荐C类会议和期刊总结:(计算机网络领域)
该文档总结了中国计算机学会(CCF)推荐的计算机网络领域C类会议和期刊,详细列出了各类会议和期刊的全称、出版社、dblp文献网址及研究领域,为研究者提供了广泛的学术交流资源和平台。
CCF推荐C类会议和期刊总结:(计算机网络领域)
|
2月前
|
传感器 网络协议
CCF推荐B类会议和期刊总结:(计算机网络领域)
中国计算机学会(CCF)推荐的B类会议和期刊在计算机网络领域具有较高水平。本文总结了所有B类会议和期刊的详细信息,包括全称、出版社、dblp文献网址及研究领域,涵盖传感器网络、移动网络、网络协议等多个方向,为学者提供重要学术交流平台。
CCF推荐B类会议和期刊总结:(计算机网络领域)
|
2月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
137 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
Nature子刊:基于内生复杂性,自动化所新类脑网络构筑人工智能与神经科科学的桥梁
【9月更文挑战第11天】中国科学院自动化研究所的研究人员提出了一种基于内生复杂性的新型类脑网络模型,通过模拟人脑内部神经元间的复杂互动来提升AI系统的智能与适应性。此模型利用图神经网络(GNN)并设计分层图结构对应人脑不同功能区,引入自适应机制根据输入数据调整结构。实验表明,此模型在图像分类及自然语言处理等任务中表现出显著提升的性能,并且处理复杂数据时更具备适应性和鲁棒性。论文链接:https://www.nature.com/articles/s43588-024-00674-9。
58 7
|
2月前
|
网络协议 算法 网络性能优化
C语言 网络编程(十五)套接字选项设置
`setsockopt()`函数用于设置套接字选项,如重复使用地址(`SO_REUSEADDR`)、端口(`SO_REUSEPORT`)及超时时间(`SO_RCVTIMEO`)。其参数包括套接字描述符、协议级别、选项名称、选项值及其长度。成功返回0,失败返回-1并设置`errno`。示例展示了如何创建TCP服务器并设置相关选项。配套的`getsockopt()`函数用于获取这些选项的值。
|
3月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!

热门文章

最新文章

下一篇
无影云桌面