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

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

(1) IPv6地址表示形式



1> 首选形式

x:x:x:x:x:x:x:x , 每个 x 都占 16 位地址段, x 是一个 16 进制的值, 如 8080:0:9:0:200:A12:100C:12 ;




2> 包含0位

零位产生 : 自动生成的 IPv6 地址, 经常包含 0 位的字符串;


0位压缩 : 使用 "::" 压缩 0 位, 如果连续出现多个 0 位, 可以使用 "::" 代替 8个字段中的 一个或者 多个 字段;


示例 : 8080:0:0:0:0:0:100C:12 , 可以压缩为 8080:100C:12 , 中间的 5 位被压缩了;




3> IPv4 和 IPv6 混合环境

混合环境替换形式 : x:x:x:x:x:x:d.d.d.d , 6 个 x 和 4 个 d, 一个 x 占 16位, 一个 d 占 8位;


映射 IPv4 的 IPv6 地址 : "::FFFF:192.168.1.1" 形式;


IPv4 兼容 IPv6 的地址 : "::192.168.1.1" 形式;


无效情况 : IPv4 必须是 d.d.d.d 格式的, 三位 或者 两位 d 的格式无效;


有效情况 : 一位 d 格式  "::FFFF:d" 有效;




4> 特殊 IPv6 地址

映射IPv4地址 : 格式 "::FFFF:d.d.d.d" , 这种类型的 IPv6 地址用于表示 IPv4 地址;


IPv4 与 IPv6 节点通信 : 本机需要 使用 相同地址数据结构, 和 相同套接字;


地址内部机制 : Java 中只有一种 IPv4 地址, 任何输入的 IPv6 形式 或者 IPv4 地址映射的地址 都会被转为 IPv4 地址形式;




5> IPv6 范围地址的文本表示形式

问题出现 : 链接本地 和 站点本地地址都是非全球的, 不同的主机 可能具有 相同的目标地址, 可能通过相同的始发系统上的不同接口到达;


解决方案 : 将始发系统连接到同一范围的多个时区, 将 时区标识符(scope_id)  添加到 IPv6 地址上;


指定scope_id格式 : IPv6-address%scope_id , IPv6 地址就是 x:x:x:x:x:x:x:x , scope_id 指的是本地接口, 如 eth0等;




scope_id 指定方式 :


-- 数字标识符 : 必须是系统可以识别的特定接口 和 范围的整数, 这些整数通过系统上的管理工具确定这些数字值;


-- 字符串标识 : 必须是 NetworkInterface.getName() 返回的确切字符串;






4. InetSocketAddress



类的全名称 :



public class InetSocketAddress extends SocketAddress

-- 作用 : IP套接字地址, 包括 IP地址 和 端口号, 用于让套接字进行 绑定 连接 或者当作返回值;



用法二 : 主机名 + 端口号, 尝试解析主机名, 如果解析失败, 该地址被标记为 未解析地址;




5. InterfaceAddress



类的全名称 :



public class InterfaceAddress extends Object

-- 作用 : 表示网络接口地址;

-- 对于 IPv4 地址 : IP地址, 子网掩码, 广播地址;


-- 对于 IPv6 地址 : IP地址, 网络前缀长度;




6. SocketAddress



类的全名称 :



public abstract class SocketAddress extends Object implements Serializable

-- 作用 : 这是一个不带任何协议附件的 SocketAddress, 注意这是一个抽象类, 其子类应该是协议相关的;



7. NetworkInterface



类的全名称 :



public final class NetworkInterface extends Object

-- 作用 : 由名称 和 分配给此接口的IP地址列表组成的网络接口, 用于标识加入多播组的本地接口; 接口名称 "eth0", "wlan0" 等;



可以进行的操作 : 根据 IP地址 名称 硬件地址 获取网络接口, 判断网络接口类型, 判断网络接口状态, 对网络接口进行一系列的操作;








三. 套接字相关类





1.  Socket



类的全名称 :



public class Socket extends Object

-- 作用 : 客户端的套接字;



套接字工作原理 : 套接字的实际工作由 SocketImpl 类实例执行, 可以更改 SocketImplFactory 进行配置, 创建适合本地防火墙的套接字;




可进行的操作 : 绑定本地地址, 链接服务器, 获取输入输出流, 设置选项, 获取套接字的状态;




2. SocketImpl



类的全名称 :



public abstract class SocketImpl extends Object implements SocketOptions

-- 作用 : 该抽象类是实现套接字的所有类的通用超类, 创建客户端 和 服务器套接字都可以使用该超类;



3. ServerSocket



类的全名称 :



public class ServerSocket extends Object
-- 作用 : 服务器套接字;



工作流程 : 该服务器套接字 等待 客户端请求传入, 根据客户端的各种请求做某些操作;




原理 : 服务器套接字的实际操作由 SocketImpl 对象执行;




创建适合本地防火墙的套接字 : 在应用程序中, 更改 创建 SocketImpl 的 SocketImplFactory 来配置 套接字;




4. MulticastSocket



类的全名称 :


public class MulticastSocket extends DatagramSocket

-- 作用 : 用于 发送 和 接收 IP 多播包;

特点 : MulticastSocket 是一种 DatagramSocket, 比一般的 DatagramSocket 多出一个功能, 具有加入Internet 上其它多播主机组的功能;


多播组指定 : 多播组通过 D 类 IP地址, 和 标准 UDP 端口号指定;  


目录
相关文章
|
27天前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
57 3
|
22天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
22天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
|
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
|
3月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
75 1
|
3月前
|
JSON 开发框架 JavaScript
【Azure Developer】使用.Net Core解析JSON的笔记
【Azure Developer】使用.Net Core解析JSON的笔记

热门文章

最新文章

下一篇
无影云桌面