ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

パッケージ 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をサポートするように構成されているかどうかをチェックできるのは、このクラスを通じてです。

適合する実装はすべて、NetworkInterfaceオブジェクトを少なくとも1つサポートする必要があります。そのオブジェクトは、ネットワークに接続されているか、同じマシン上のエンティティとだけ通信できる「ループバック」インタフェースであることが必要です。

高レベルの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クラスは、抽象クラスURLStreamHandlerのサブクラスでなければいけないことに注意してください。

追加仕様

導入されたバージョン:
JDK1.0
ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

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