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类);

ContentHandlerFactory : 该接口定义内容处理程序工厂;

DatagramSocketImplFactory : 该接口定义用户数据报实现工厂;

FileNameMap : 定义了 文件名 和 MIME Type 字符串之间的映射 机制 的接口;

SocketImplFactory : 定义 套接字 实现 工厂;

SocketOptions : 定义 获取 设置 套接字选项的 方法 的接口;

URLStreamHandlerFactory : 定义 URL 流协议处理程序 工厂;

1. ContentHandlerFactory

作用 : 定义内容处理程序工厂, 该接口的实现类 负责 将 MIME 类型映射到 ContentHandler 实例对象中;

MIME 解析 :

-- 扩展名 : Multipurpose Internet Mail Extentions 多用途互联网邮件扩展类型;

-- 作用 : 设定 A 扩展名的文件 使用 B 程序打开, 当 A 扩展名文件被访问到的时候, 浏览器会自动 调用 B 程序打开这个 A 扩展名文件;

-- 使用形式 : 多用于关联 自定义的文件后缀文件打开方式 和 媒体文件打开方式;

接口使用环境 : URLStreamHandler 使用此接口实现的方法 创建 MIME Type 的 ContentHandler;

接口方法解析 :

ContentHandler createContentHandler(String mimetype)

-- 作用 : 创建 新的ContentHandler, 该 ContentHandler 可以从 URLStreamHandler 中读取对象; 

2. DatagramSocketImplFactory

作用 : 定义用于数据包套接字实现的工厂;

接口使用环境 : DatagramSocket 使用该接口的方法 创建 套接字实例;

接口方法解析 :

DatagramSocketImpl createDatagramSocketImpl()

-- 作用 : 创建 DatagramSocketImpl 实例对象;

3. FileNameMap

作用 : 文件名称 MIME Type 字符串 之间的映射 所需的接口;

接口方法解析 :

String getContentTypeFor(String fileName)

-- 作用 : 获取指定文件名的 MIME Type 字符串;

4. SocketImplFactory

作用 : 用于定义套接字实现工厂;

使用环境 : Socket 和 ServerSocket 使用该接口定义的方法 来创建套接字实例;

方法解析 :

SocketImpl createSocketImpl()

-- 作用 : 创建新的套接字实例;

5. SocketOptions

作用 : 定义了 设置 获取 套接字 选项的方法;

接口使用环境 : SocketImpl 和 DatagramSocketImpl 实现了该接口, 这两个类的子类应该重写该接口, 用以支持两个类的子类的选项;

(1) 常量字段解析

IP_MULTICAST_IF : 设置一个用于发送多播包的传出接口(eth0, eth1, wlan0 等);

-- 使用环境 : 可以在具有多个网络接口的主机上使用, 一般这种情况下应用程序 不使用系统默认的接口, 而使用其它接口;

IP多播 : 一台主机 (多播源) 同时发送 同一数据到多台主机;

IP-MULTICAST_IF2 : 与 IP_MULTICAST_IF 作用相同, 但是添加了 对 IPv4 IPv6 的支持, 该常量从 1.4 版本 开始支持;

IF_MULTICAST_LOOP : 用于 启动 或 禁用 多播数据报会送, 默认状态是启动;

IP_TOS : 在 IP 地址头 中设置 TCP UDP 数据报的 服务类型 或者 流量字段;

TOS (Type Of Service) : 在网络中区分包的优先级, 单字节, 下面是常用的常量 服务类型;

-- IPTOS_LOWDELAY : 延迟最小化;

-- IPTOS_THROUGHPUT : 优化吞吐量;

-- IPTOS_RELIABILITY : 可靠性优化;

-- IPTOS_MINCOST : 填充数据, 这些数据可以低速传送, 无关紧要;

SO_BINDADDR : 获取绑定套接字的本地地址;

-- 套接字本地地址不可更改 : 套接字在创建的时候绑定本地地址, 因此不可更改;

-- 套接字默认地址 : INADDR_ANY 表示 多穴主机 (有多个IP地址的主机) 的任何地址;

SO_REUSEADDR : 仅用于 MulticastSocket, 默认情况下MulticastSocket 设置了该选项, 对 DatagramSocketImpl 有效;

SO_BROADCAST : 启动 禁用 发送广播消息的 处理能力;

-- 使用场景 : 数据报套接字, 支持广播消息概念的网络;

-- 默认设置 : DatagramSocket 默认启动该选项;

SO_KEEPALIVE : TCP 套接字设置了该选项, 2小时内 没有通过 Socket 传输数据, TCP 会将 keepalive 探头 发送到同为体中;

-- 作用 : 检测同位体主机是否崩溃;

-- 适用情况 : 仅对 TCP 套接字有效;

-- 同位体通过期待的ACK响应 : 不通知应用程序, 在另外2小时 没有数据传输之后, TCP 继续发送一个探头;

-- 同位体通过 RST 响应 : 通知本地 TCP 同位体主机 崩溃, 关闭socket 重启主机;

-- 同位体无响应 : 直接关闭套接字;

SO_LINGER : 关闭逗留的超时值, 即 在 TCP Socket 执行 close 之后, 等待的时间;

-- 启用 非0 超时值 : close() 之后, 在传输 和 确认读写完毕之前 一直阻塞, 如果超时就会 通过 TCP RST 强制关闭;

-- 启用 0 超时值 : close() 之后会强制关闭, 不会进行任何等待;

SO_OOBINLINE : 是否丢弃 socket 接收的 tcp 紧急数据;

-- 启动选项 : socket 接收的 tcp 紧急数据 都通过 socket 输入流接收;

-- 禁用选项 : 接收的 tcp 紧急数据 直接丢弃;

SO_RCVBUF (receive) : 设置 网络 输入 的缓冲区大小;

-- 设置方法使用 : 设置通过套接字 接收数据 时使用的缓冲区的大小;

-- 获取方法使用 : 获取套接字设置的 接收数据 缓冲区大小;

-- 适用情况 : SocketImpl , DatagramSocketImpl;

SO_SNDBUF (send): 设置 网络 输出 的 用到的基础的IO缓冲区大小提示;

-- 设置方法使用 : 设置通过套接字 发送数据 时使用的缓冲区的大小;

-- 获取方法使用 : 获取套接字设置的 发送数据 缓冲区大小;

-- 适用情况 : SocketImpl , DatagramSocketImpl;

SO_TIMEOUT : 设置 Socket 阻塞的 超时值;

-- 超时的操作 : ServerSocket.accept(), SocketInputStream.read(), DatagramSocket.receive();

-- 设置时机 : 该选项必须在进入阻塞前设置才有效, 如果是阻塞的状态, 设置将不会对本次阻塞生效;

-- 超时处理 : 如果出现超时, 阻塞会继续执行, 但是会引发 InterruptedIOException 异常, Socket 不会关闭;

-- 适用情况 : 该设置对所有的套接字 ( SocketImpl, DatagramSocketImpl ) 有效;

TCP_NODELAY : 设置该参数的链接禁用 nagle 算法;

Nagle算法解析 : 减少发包个数, 用于增加网络软件的效率, 避免 一个包只有 1字节, 却使用了 40个字节的头文件的情况;

(2) 接口方法详解

void setOption(int optID, Object value) throws SocketException

-- 作用 : 启用 / 禁用 指定选项, 如果启用, 将会采用 value 选项;

-- 选项传入错误 : 如果传入的 value 格式不正确, 会发生错误;

-- 传入基本数据类型 : 使用 Integer Boolean 等封装;

-- 禁用选项 : 传入 new Boolean(false) 可以禁用任何选项, 如果传入其它内容 都会启用该选项;

-- 异常 : 如果选项匹配错误, 或者 socket 关闭 等错误, 就会报出 SocketException 异常;

Object getOption(int optID) throws SocketException

-- 作用 : 获取选项的值;

6. URLStreamHandlerFactory

接口作用 : 定义了 URL 流协议处理程序的工厂, URL 类实现该接口 为特定的协议创建 URLStreamHandler;

createURLStreamHandler URLStreamHandler createURLStreamHandler(String protocol)

-- 作用 : 创建具有指定协议的新的 URLStreamHandler实例;

,

【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api的更多相关文章

  1. Android 网络编程 API笔记 - java.net 包相关 接口 api

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

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

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

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

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

  4. [Android应用开发] 03.网络编程

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  5. UNIX网络编程读书笔记:基本SCTP套接口编程

    概述 SCTP是一个较新的传输协议,于2000年在IETF得到标准化(TCP是在1981年标准化的).它最初是为满足不断增长的IP电话市场设计的:具体地说,就是穿越因特网传输电话信令. SCTP是一个 ...

  6. UNIX网络编程读书笔记:基本UDP套接口编程

    概述 使用UDP编写的一些流行的应用程序有:DNS(域名系统).NFS(网络文件系统)和SNMP(简单网络管理协议). 如下图所示,给出了典型的UDP客户/服务器程序的函数调用: 客户不与服务器建立连 ...

  7. UNIX网络编程读书笔记:基本TCP套接口编程

    编写一个完整的TCP客户和服务器程序所需要的基本套接口函数: 1.socket函数(客户端.服务器端都必须调用) 参数family指明协议族(family),该参数也往往被称为协议域(domain). ...

  8. Java网络编程:利用Java mail包发送电子邮件

    下面代码是利用Java mail包封装了一个发送邮件的类 import java.io.File; import java.util.ArrayList; import java.util.Date; ...

  9. Android应用开发:网络工具——Volley(二)

    引言 在Android应用开发:网络工具--Volley(一)中结合Cloudant服务介绍了Volley的一般使用方法.当中包括了两种请求类型StringRequest和JsonObjectRequ ...

随机推荐

  1. python脚本批量生成数据

    在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家 ...

  2. JavaScript 函数定义

    JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function function ...

  3. Docker 列出镜像

    使用 docker images 显示本地已有的镜像. $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu ...

  4. Gradle 1.12用户指南翻译——第五十章. 依赖管理

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

  5. 使用Docker搭建GitLab

    使用docker-compose快速启动GitLab.(当然前提是你先安装docker-compose,安装方式见博客:http://blog.csdn.net/yulei_qq/article/de ...

  6. pxe无人值守安装linux机器笔记

    最近做一些集群的测试的工作,做服务器测试最根本就是要安装系统,曾经我们用十几个光驱并行安装光驱的日子过去了,自从有了pxe一两天搭建好一个集群不是梦!当然做多了集群的搭建工作最多的感受就是,其实运维工 ...

  7. 学习TensorFlow,调用预训练好的网络(Alex, VGG, ResNet etc)

    视觉问题引入深度神经网络后,针对端对端的训练和预测网络,可以看是特征的表达和任务的决策问题(分类,回归等).当我们自己的训练数据量过小时,往往借助牛人已经预训练好的网络进行特征的提取,然后在后面加上自 ...

  8. Python 妙用heapq

    小顶堆求TopK大 大顶堆求BtmK小 题外话 Python有一个内置的模块,heapq标准的封装了最小堆的算法实现.下面看两个不错的应用. 小顶堆(求TopK大) 话说需求是这样的: 定长的序列,求 ...

  9. 在8X8的棋盘上分布着n个骑士,他们想约在某一个格中聚会。骑士每天可以像国际象棋中的马那样移动一次,可以从中间像8个方向移动(当然不能走出棋盘),请计算n个骑士的最早聚会地点和要走多少天。要求尽早聚会

    在8X8的棋盘上分布着n个骑士,他们想约在某一个格中聚会.骑士每天可以像国际象棋中的马那样移动一次,可以从中间像8个方向移动(当然不能走出棋盘),请计算n个骑士的最早聚会地点和要走多少天.要求尽早聚会 ...

  10. 阿里云手动安装特定版本的nginx

    想添加nginx的缓存功能, 结果1.4.6还不支持. apt-get remove nginx 374 sudo apt-key add nginx_signing.key 375 deb http ...