當前位置:編程學習大全網 - 源碼破解 - handlersocket

handlersocket

軟件包 java.net 的描述

為實現網絡應用程序提供類。

java.net 包可以大致分為兩個部分:

低級 API,用於處理以下抽象:

地址,也就是網絡標識符,如 IP 地址。

套接字,也就是基本雙向數據通信機制。

接口,用於描述網絡接口。

高級 API,用於處理以下抽象:

URI,表示統壹資源標識符。

URL,表示統壹資源定位符。

連接,表示到 URL 所指向資源的連接。

地址

在整個 java.net API 中,地址或者用作主機標識符或者用作套接字端點標識符。

InetAddress 類是表示 IP(Internet 協議)地址的抽象。它擁有兩個子類:

用於 IPv4 地址的 Inet4Address。

用於 IPv6 地址的 Inet6Address。

但是,在大多數情況下,不必直接處理子類,因為 InetAddress 抽象應該覆蓋大多數必需的功能。

關於 IPv6

並非所有系統都支持 IPv6 協議,而當 Java 網絡連接堆棧嘗試檢測它並在可用時透明地使用它時,還可以利用系統屬性禁用它。在 IPv6 不可用或被顯式禁用的情況下,Inet6Address 對大多數網絡連接操作都不再是有效參數。雖然可以保證在查找主機名時 java.net.InetAddress.getByName 之類的方法不返回 Inet6Address,但仍然可能通過傳遞字面值來創建此類對象。在此情況下,大多數方法在使用 Inet6Address 調用時都將拋出異常。

套接字

套接字是在網絡上建立機器之間的通信鏈接的方法。java.net 包提供 4 種套接字:

Socket 是 TCP 客戶端 API,通常用於連接遠程主機。

ServerSocket 是 TCP 服務器 API,通常接受源於客戶端套接字的連接。

DatagramSocket 是 UDP 端點 API,用於發送和接收數據包

MulticastSocket 是 DatagramSocket 的子類,在處理多播組時使用。

使用 TCP 套接字的發送和接收操作需要借助 InputStream 和 OutputStream 來完成,這兩者是通過 Socket.getInputStream() 和 Socket.getOutputStream() 方法獲取的。

接口

NetworkInterface 類提供 API 以瀏覽和查詢本地機器的所有網絡接口(例如,以太網連接或 PPP 端點)。只有通過該類才可以檢查是否將所有本地接口都配置為支持 IPv6。

高級 API

java.net 包中的許多類可以提供更加高級的抽象,允許方便地訪問網絡上的資源。這些類為:

URI 是表示在 RFC 2396 中指定的統壹資料標識符的類。顧名思義,它只是壹個標識符,不直接提供訪問資源的方法。

URL 是表示統壹資源定位符的類,它既是 URI 的舊式概念又是訪問資源的方法。

URLConnection 是根據 URL 創建的,是用於訪問 URL 所指向資源的通信鏈接。此抽象類將大多數工作委托給底層協議處理程序,如 /");

URL url = uri.toURL();

InputStream in = url.openStream();

協議處理程序

如上所述,URL 和 URLConnection 都依賴於協議處理程序,所以協議處理程序必須存在;否則將拋出異常。此為與 URI 的主要不同點,URI 僅標識資源,所以不必訪問協議處理程序。因此,盡管可能利用任何種類的協議方案(例如,myproto://myhost.mydomain/resource/)創建 URI,但類似的 URL 仍將試圖實例化指定協議的處理程序;如果指定協議的處理程序不存在,則拋出異常。

默認情況下,協議處理程序從默認位置動態加載。但是,通過設置 java.protocol.handler.pkgs 系統屬性也可能增加搜索路徑。例如,如果將其設置為 myapp.protocols,則 URL 代碼將首先嘗試(對於 http 而言)加載 myapp.protocols.http.Handler,然後,如果失敗,則嘗試從默認位置加載 http.Handler。

註意,處理程序類必須為抽象類 URLStreamHandler 的子類。

  • 上一篇:重裝系統的時候如何進入光盤啟動?
  • 下一篇:如何評價老戴在此?
  • copyright 2024編程學習大全網