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 网络编程 API笔记 - java.net 包相关 接口 api的更多相关文章

  1. 【Android 应用开发】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. Java网络编程:利用Java mail包发送电子邮件

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

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

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

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

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

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

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

  8. Android网络编程概述

    Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包 ...

  9. 转 Android网络编程之使用HttpClient批量上传文件 MultipartEntityBuilder

    请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 http://www.tuicool.com/articles/Y7reYb 我曾在<Andr ...

随机推荐

  1. Tomcat性能监控

    Tomcat性能监控工具很多,这里介绍两种1.JMeter 2.probe,使用这两种工具都需要在tomcat的安装目录/conf/tomcat-users.xml添加 <tomcat-user ...

  2. shell脚本实现目录的“5S”作业

    shell,又称为命令解释器.首先它是一个软件,有很多个版本,现在最流行的为bash,它作为用户和内核沟通的中间桥梁,在系统中起着举足轻重的作用 shell脚本,是一个以.sh结尾的文件,里面是诸如l ...

  3. Webstorm新建vue类型文件设置

    今天安装了Node.js,配置了vue需要的框架,发现原有的wenstorm新建文件的时候没有vue文件选项,因此,学习了一下webstorm如何配置创建vue文件 具体过程如下: 第一步,打开web ...

  4. 解决 LLVM 错误提示 may only occur zero or one times!

    使用 LLVM 混淆器添加参数进行编译提示如下错误:clang (LLVM option parsing): for the -bcf option: may only occur zero or o ...

  5. python函数的四种参数传递方式

    python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...

  6. C语言跳水比赛预测结果

    5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三:B选手说:我第二,E第四:C选手说:我第一,D第二:D选手说:C最后,我第三:E选手说:我第四,A第一:比赛结束后,每 ...

  7. Python CSV模块简介

    Table of Contents 1. CSV 1.1. 简介 1.2. 字典方式地读写 1.3. 其它 2. 参考资料 CSV csv文件格式是一种通用的电子表格和数据库导入导出格式.最近我调用R ...

  8. P1535 游荡的奶牛

    P1535 游荡的奶牛 题目描述 Searching for the very best grass, the cows are travelling about the pasture which ...

  9. VINS(九)Ceres Solver优化(未完待续)

    使用Ceres Solver库处理后端优化问题,首先系统的优化函数为

  10. restTemplate访问接口

    后端技术精选 每天推送精选技术好文,涉及Java.python.Linux及MySQL,欢迎关注微信公众号:后端技术精选 随笔 - 52, 文章 - 0, 评论 - 50, 引用 - 0 Spring ...