Java™ Platform
Standard Edition 7

パッケージ java.net

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

参照: 説明

パッケージ 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
Java™ Platform
Standard Edition 7

バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.