日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

發布時間:2025/6/17 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。