JavaTM Platform
Standard Ed. 6

パッケージ java.net

ネットワークアプリケーションを実装するためのクラスを提供します。

参照先:
          説明

インタフェースの概要
ContentHandlerFactory このインタフェースは、コンテンツハンドラのファクトリを定義します。
CookiePolicy CookiePolicy 実装は、どの Cookie を受け入れ、どの Cookie を拒否すべきかを決定します。
CookieStore CookieStore オブジェクトは、Cookie の記憶領域を表します。
DatagramSocketImplFactory このインタフェースは、データグラムソケット実装のファクトリを定義します。
FileNameMap ファイル名と MIME タイプ文字列をマップする機構を提供する単純なインタフェースです。
SocketImplFactory このインタフェースは、ソケット実装のファクトリを定義します。
SocketOptions ソケットオプションを取得/設定するメソッドのインタフェース。
URLStreamHandlerFactory URL ストリームプロトコルハンドラのファクトリを定義するインタフェースです。
 

クラスの概要
Authenticator Authenticator クラスは、ネットワーク接続に必要な認証を取得するためのオブジェクトを表します。
CacheRequest リソースを ResponseCache 内に格納するためのチャネルを表します。
CacheResponse ResponseCache からリソースを取得するためのチャネルを表します。
ContentHandler abstract クラス ContentHandler は、URLConnection から Object を読み込むすべてのクラスのスーパークラスです。
CookieHandler CookieHandler オブジェクトは、HTTP プロトコルハンドラに HTTP 状態管理ポリシー実装を組み込むためのコールバック機構を提供します。
CookieManager CookieManager は CookieHandler の具象実装を提供し、Cookie の記憶領域と Cookie の受け入れ/拒否に関するポリシーとを分離します。
DatagramPacket このクラスはデータグラムパケットを表します。
DatagramSocket このクラスは、データグラムパケットを送受信するためのソケットを表します。
DatagramSocketImpl 抽象データグラムおよびマルチキャストソケットを実装する基底クラスです。
HttpCookie HttpCookie オブジェクトは、サーバーとユーザーエージェントとの間で状態情報を伝達する HTTP Cookie を表します。
HttpURLConnection HTTP 固有の機能をサポートする URLConnection です。
IDN 通常の Unicode 表現と ASCII 互換エンコーディング (ACE) 表現との間で国際化ドメイン名 (IDN) の変換を行うメソッドを提供します。
Inet4Address このクラスは、インターネットプロトコルバージョン 4 (IPv4) アドレスを表します。
Inet6Address このクラスは、インターネットプロトコルバージョン 6 (IPv6) アドレスを表します。
InetAddress IP (Internet Protocol) アドレスを表すクラスです。
InetSocketAddress このクラスは、IP ソケットアドレス (IP アドレス + ポート番号) を実装します。
InterfaceAddress このクラスは、ネットワークインタフェースアドレスを表します。
JarURLConnection JAR (Java ARchive) ファイル、または JAR ファイル内にあるエントリへの URL 接続です。
MulticastSocket マルチキャストデータグラムソケットクラスは、IP マルチキャストパケットを送受信する場合に役立ちます。
NetPermission このクラスは、各種のネットワークアクセス権のために使います。
NetworkInterface このクラスは、名前と、このインタフェースに割り当てられた一連の IP アドレスから成るネットワークインタフェースを表します。
PasswordAuthentication クラス PasswordAuthentication は、オーセンティケータによって使用されるデータホルダーです。
Proxy このクラスはプロキシ設定を表しますが、通常これは、タイプ (http、socks) とソケットアドレスから成ります。
ProxySelector URL で参照されるネットワークリソースへの接続時に使用するプロキシサーバーが存在する場合に、それらを選択します。
ResponseCache URLConnection のキャッシュの実装を表します。
SecureCacheResponse 最初に TLS などのセキュリティー保護された方法で取得されたキャッシュ応答を表します。
ServerSocket このクラスはサーバーソケットを実装します。
Socket このクラスは、クライアントソケット (単に「ソケット」とも呼ばれる) を実装します。
SocketAddress このクラスは、プロトコルに関連付けられていないソケットアドレスを表します。
SocketImpl abstract クラス SocketImpl は、実際にソケットを実装するすべてのクラスに共通のスーパークラスです。
SocketPermission このクラスは、ソケットを通じたネットワークへのアクセス権を表します。
URI URI (Uniform Resource Identifier) 参照を表します。
URL URL クラスは、Uniform Resource Locator (ユニフォームリソースロケータ)、つまり World Wide Web 上の「リソース」へのポインタを表します。
URLClassLoader このクラスローダーは、JAR ファイルとディレクトリの両方を参照する URL の検索パスから、クラスとリソースをロードするために使用されます。
URLConnection abstract クラス URLConnection は、アプリケーションと URL との間の通信リンクを表すすべてのクラスのスーパークラスです。
URLDecoder HTML 形式をデコードするためのユーティリティークラスです。
URLEncoder HTML 形式をエンコードするためのユーティリティークラスです。
URLStreamHandler abstract クラス URLStreamHandler は、すべてのストリームプロトコルハンドラに共通のスーパークラスです。
 

列挙型の概要
Authenticator.RequestorType 認証を要求しているエンティティーのタイプ。
Proxy.Type プロキシタイプを表します。
 

例外の概要
BindException ソケットをローカルアドレスとポートにバインドしようとした際にエラーが発生したことを通知します。
ConnectException ソケットをリモートアドレスとポートに接続しようとした際にエラーが発生したことを通知します。
HttpRetryException HTTP 要求を再試行する必要があるが、ストリーミングモードが有効になっているために自動的に再試行できないことを示すために、スローされます。
MalformedURLException 不正な形式の URL が見つかったことを示すためにスローされます。
NoRouteToHostException ソケットをリモートアドレスとポートに接続しようとした際にエラーが発生したことを通知します。
PortUnreachableException ICMP ポート到達不可能メッセージが接続されたデータグラムに受信されたことを示すシグナルです。
ProtocolException 使用しているプロトコルでエラー (TCP エラーなど) が発生したことを表すためにスローされます。
SocketException 使用しているプロトコルでエラー (TCP エラーなど) が発生したことを表すためにスローされます。
SocketTimeoutException ソケットの読み込みまたは受け入れでタイムアウトが発生したことを示すシグナルです。
UnknownHostException ホストの IP アドレスが判定できなかった場合にスローされます。
UnknownServiceException 未知のサービス例外が発生したことを示すためにスローされます。
URISyntaxException 文字列を URI 参照として解析できなかったことを示すためにスローされたチェック例外です。
 

パッケージ java.net の説明

ネットワークアプリケーションを実装するためのクラスを提供します。

java.net パッケージは、大きく次の 2 つの部分に分けられます。

アドレス

アドレスは、ホスト識別子、ソケット端点識別子のいずれかとして、java.net API の全体で使用されます。

InetAddress クラスは、IP (Internet Protocol) アドレスを表す抽象オブジェクトです。これには次の 2 つのサブクラスがあります。

ただし、ほとんどの場合、サブクラスを直接扱う必要はありません。InetAddress 抽象オブジェクトが必要な機能の大部分をカバーするはずだからです。

IPv6 について

すべてのシステムが IPv6 プロトコルをサポートしているわけではありません。また、Java ネットワークスタックは IPv6 が使用可能な場合はそれを透過的に検出して使用しようとしますが、システムプロパティーを使ってその使用を無効にすることもできます。IPv6 が使用可能でないか明示的に無効化されている場合、Inet6Address が、大部分のネットワーク操作で有効な引数ではなくなります。InetAddress.getByName(java.lang.String) のようなメソッドがホスト名を検索する際に Inet6Address を返すことは決してありませんが、リテラルを渡すことでそのようなオブジェクトを生成することは可能です。その場合、大部分のメソッドは、Inet6Address を指定して呼び出されると、例外をスローします。

ソケット

ソケットは、ネットワーク上のマシン間で通信リンクを確立するための手段です。java.net パッケージは次の 4 種類のソケットを提供します。

TCP ソケットによる送受信は、InputStream と OutputStream を使って行われます。これらを取得するには、Socket.getInputStream() メソッドと Socket.getOutputStream() メソッドを使用します。

インタフェース

NetworkInterface クラスは、ローカルマシンのすべてのネットワークインタフェース (Ethernet 接続や PPP 端点など) の参照やクエリーを行うための API を提供します。ローカルインタフェースのいずれかが IPv6 をサポートするように構成されているかどうかをチェックできるのは、このクラスを通じてです。

高レベルの API

java.net パッケージ内の多くのクラスは、非常に高レベルの抽象化オブジェクトを提供しており、ネットワーク上のリソースへの容易なアクセスを可能にします。それらのクラスを次に示します。

推奨の使用方法は、URI を使ってリソースを識別したあと、そのリソースにアクセスする段階でそれを URL に変換するというものです。その URL から、きめ細かな制御が可能な URLConnection を取得することも、InputStream を直接取得することもできます。

次はその例です。

URI uri = new URI("http://java.sun.com/");
URL url = uri.toURL();
InputStream in = url.openStream();

プロトコルハンドラ

前述のとおり、URL と URLConnection はプロトコルハンドラに依存しており、それらが存在していなければいけません。そうでない場合は、例外がスローされます。これが URI との主な違いです。URI はリソースを識別するだけなので、プロトコルハンドラにアクセスする必要はありません。したがって、URI の作成時には、myproto://myhost.mydomain/resource/ のようにどのような種類のプロトコルスキーマでも含めることができるのに対し、同様の URL は、指定されたプロトコルのハンドラをインスタンス化しようとします。そして、そのようなハンドラが存在しない場合は例外がスローされます。

プロトコルハンドラはデフォルトで、デフォルトの場所から動的にロードされます。ただし、検索パスにパスを追加することもできます。それには、java.protocol.handler.pkgs システムプロパティーを設定します。たとえば、それが myapp.protocols に設定されている場合、URL コードは HTTP の場合であれば、まず myapp.protocols.http.Handler をロードしようとし、それが失敗したら、デフォルトの場所から http.Handler をロードしようとします。

Handler クラスは abstract クラス URLStreamHandler のサブクラスでなければいけないことに注意してください。

導入されたバージョン:
JDK1.0

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。