- すべての実装されたインタフェース:
Closeable,AutoCloseable,ByteChannel,Channel,GatheringByteChannel,InterruptibleChannel,MulticastChannel,NetworkChannel,ReadableByteChannel,ScatteringByteChannel,WritableByteChannel
public abstract class DatagramChannel extends AbstractSelectableChannel implements ByteChannel, ScatteringByteChannel, GatheringByteChannel, MulticastChannel
データグラム・チャネルは、このクラスのopenメソッドの1つを呼び出すことによって作成されます。 任意の既存のデータグラム・ソケットのチャネルを作成することはできません。 新しく作成されたデータグラム・チャネルはオープンですが、接続は確立されていません。 sendメソッドとreceiveメソッドを使用するために、データグラム・チャネルを接続する必要はありません。 セキュリティ・チェックのオーバーヘッドを回避する目的でconnectメソッドを呼び出すと、データグラム・チャネルが接続され、送受信操作のたびにセキュリティ・チェックが行われずに済みます。 ソケット・アドレスを受け付けない(返さない) readメソッドとwriteメソッドを使用するためには、データグラム・チャネルを接続する必要があります。
一度接続されたデータグラム・チャネルは、接続が切断されるかクローズされるまで接続されたままになります。 データグラム・チャネルが接続されているかどうかは、isConnectedメソッドの呼出しによって判断できます。
ソケット・オプションはsetOptionメソッドを使用して構成されます。 Internet Protocolソケットへのデータグラム・チャネルでは次のオプションがサポートされます。
追加(実装固有)のオプションをサポートできる場合もあります。
オプション名 説明 SO_SNDBUFソケット送信バッファのサイズ SO_RCVBUFソケット受信バッファのサイズ SO_REUSEADDRアドレスを再利用します SO_BROADCASTブロードキャスト・データグラムの転送を許可します IP_TOSIP (Internet Protocol)ヘッダーのサービス・タイプ(ToS)オクテット IP_MULTICAST_IFIP (Internet Protocol)マルチキャスト・データグラムのネットワーク・インタフェース IP_MULTICAST_TTLIP (Internet Protocol)マルチキャスト・データグラムの有効期間 IP_MULTICAST_LOOPIP (Internet Protocol)マルチキャスト・データグラムのループ・バック
データグラム・チャネルは、複数の並行スレッドで安全に使用できます。 データグラム・チャネルは並行読取りおよび書込みをサポートします。ただし、読取りを行うスレッドも書込みを行うスレッドも特定の時点では常に1個以下です。
- 導入されたバージョン:
- 1.4
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedDatagramChannel(SelectorProvider provider)このクラスの新しいインスタンスを初期化します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 abstract DatagramChannelbind(SocketAddress local)チャネルのソケットをローカル・アドレスにバインドします。abstract DatagramChannelconnect(SocketAddress remote)このチャネルのソケットを接続します。abstract DatagramChanneldisconnect()このチャネルのソケットの接続を切断します。abstract SocketAddressgetLocalAddress()このチャネルのソケットがバインドされているソケット・アドレスを返します。abstract SocketAddressgetRemoteAddress()このチャネルのソケットが接続されているリモート・アドレスを返します。abstract booleanisConnected()このチャネルのソケットが接続されているかどうかを判断します。static DatagramChannelopen()データグラム・チャネルをオープンします。static DatagramChannelopen(ProtocolFamily family)データグラム・チャネルをオープンします。abstract intread(ByteBuffer dst)このチャネルからデータグラムを読み込みます。longread(ByteBuffer[] dsts)このチャネルからデータグラムを読み込みます。abstract longread(ByteBuffer[] dsts, int offset, int length)このチャネルからデータグラムを読み込みます。abstract SocketAddressreceive(ByteBuffer dst)このチャネルからデータグラムを受信します。abstract intsend(ByteBuffer src, SocketAddress target)このチャネルからデータグラムを送信します。abstract <T> DatagramChannelsetOption(SocketOption<T> name, T value)ソケット・オプションの値を設定します。abstract DatagramSocketsocket()このチャネルに関連したデータグラム・ソケットを取得します。intvalidOps()このチャネルのサポートされている操作を識別する操作セットを返します。abstract intwrite(ByteBuffer src)このチャネルへデータグラムを書き込みます。longwrite(ByteBuffer[] srcs)このチャネルへデータグラムを書き込みます。abstract longwrite(ByteBuffer[] srcs, int offset, int length)このチャネルへデータグラムを書き込みます。クラス java.nio.channels.spi.AbstractSelectableChannelで宣言されたメソッド
configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, provider, registerクラス java.nio.channels.SelectableChannelで宣言されたメソッド
blockingLock, isBlocking, isRegistered, keyFor, register
-
コンストラクタの詳細
-
DatagramChannel
protected DatagramChannel(SelectorProvider provider)このクラスの新しいインスタンスを初期化します。- パラメータ:
provider- このチャネルの作成元プロバイダ
-
-
メソッドの詳細
-
open
public static DatagramChannel open() throws IOExceptionデータグラム・チャネルをオープンします。システム全体のデフォルト
SelectorProviderオブジェクトのopenDatagramChannelメソッドを呼び出すことで、新しいチャネルが作成されます。 チャネルは接続されません。チャネルのソケットの
ProtocolFamilyは、プラットフォーム(および場合によっては構成)によって異なるため、未指定です。openを使用して、データグラム・チャネルを開くときにプロトコル・ファミリを選択できます。Internet Protocolマルチキャストを対象とするデータグラム・チャネルを開くときは、これを使用する必要があります。- 戻り値:
- 新しいデータグラム・チャネル
- 例外:
IOException- 入出力エラーが発生した場合
-
open
public static DatagramChannel open(ProtocolFamily family) throws IOExceptionデータグラム・チャネルをオープンします。familyパラメータは、ProtocolFamilyを指定するために使用されます。 IPマルチキャストにデータグラム・チャネルを使用する場合、これは、このチャネルが参加するマルチキャスト・グループのアドレス・タイプに対応する必要があります。システム全体のデフォルト
SelectorProviderオブジェクトのopenDatagramChannelメソッドを呼び出すことで、新しいチャネルが作成されます。 チャネルは接続されません。- パラメータ:
family- プロトコル・ファミリ- 戻り値:
- 新しいデータグラム・チャネル
- 例外:
UnsupportedOperationException- 指定されたプロトコル・ファミリがサポートされていない場合。 たとえば、パラメータにStandardProtocolFamily.INET6が指定されているが、IPv6がプラットフォームで有効になっていないとします。IOException- 入出力エラーが発生した場合- 導入されたバージョン:
- 1.7
-
validOps
public final int validOps()このチャネルのサポートされている操作を識別する操作セットを返します。データグラム・チャネルでは、読取りと書込みがサポートされるため、このメソッドは
(SelectionKey.OP_READ|SelectionKey.OP_WRITE)を返します。- 定義:
validOps、クラス:SelectableChannel- 戻り値:
- 有効な操作セット
-
bind
public abstract DatagramChannel bind(SocketAddress local) throws IOExceptionインタフェースからコピーされた説明:NetworkChannelチャネルのソケットをローカル・アドレスにバインドします。このメソッドは、ソケットとローカル・アドレスとの間の関連付けを確立するために使用されます。 関連付けが確立されると、ソケットはチャネルが閉じられるまでバインドされたままになります。
localパラメータの値がnullの場合、ソケットは自動的に割り当てられるアドレスにバインドされます。- 定義:
bind、インタフェース:NetworkChannel- パラメータ:
local- ソケットのバインド先のアドレス、または自動的に割り当てられるソケット・アドレスにソケットをバインドする場合はnull- 戻り値:
- このチャネル
- 例外:
AlreadyBoundException- ソケットがすでにバインドされている場合UnsupportedAddressTypeException- 指定されたアドレスのタイプがサポート対象外の場合ClosedChannelException- チャネルがクローズしている場合IOException- その他の入出力エラーが発生した場合SecurityException- セキュリティ・マネージャがインストールされていて、checkListenメソッドが操作を拒否した場合- 導入されたバージョン:
- 1.7
- 関連項目:
NetworkChannel.getLocalAddress()
-
setOption
public abstract <T> DatagramChannel setOption(SocketOption<T> name, T value) throws IOExceptionインタフェースからコピーされた説明:NetworkChannelソケット・オプションの値を設定します。- 定義:
setOption、インタフェース:NetworkChannel- 型パラメータ:
T- ソケット・オプション値のタイプ- パラメータ:
name- ソケット・オプションvalue- ソケット・オプションの値。 一部のソケット・オプションに対しては、nullの値が有効な値である場合があります。- 戻り値:
- このチャネル
- 例外:
UnsupportedOperationException- チャネルがソケット・オプションをサポートしていない場合IllegalArgumentException- 値がこのソケット・オプションに対して有効な値でない場合ClosedChannelException- このチャネルがクローズしている場合IOException- 入出力エラーが発生した場合- 導入されたバージョン:
- 1.7
- 関連項目:
StandardSocketOptions
-
socket
public abstract DatagramSocket socket()このチャネルに関連したデータグラム・ソケットを取得します。返されるオブジェクトは、
DatagramSocketクラスで宣言されていないpublicメソッドは宣言しません。- 戻り値:
- このチャネルに関連したデータグラム・ソケット
-
isConnected
public abstract boolean isConnected()このチャネルのソケットが接続されているかどうかを判断します。- 戻り値:
- このチャネルのソケットが
openで、接続されている場合にかぎりtrue
-
connect
public abstract DatagramChannel connect(SocketAddress remote) throws IOExceptionこのチャネルのソケットを接続します。チャネルのソケットは、指定されたリモート「ピア」アドレス以外とはデータグラムをやりとりしないように構成されています。 接続後、指定されたアドレス以外のアドレスとデータグラムがやりとりされることはありません。 データグラム・ソケットは、接続を明示的に切断するかクローズするまで接続されたままになります。
このメソッドは、
DatagramSocketクラスのconnectメソッドとまったく同じセキュリティ・チェックを行います。 セキュリティ・マネージャがインストールされている場合、このメソッドは、checkAcceptメソッドが指定されたリモート・アドレスからのデータグラムの受信を許可し、checkConnectメソッドが指定されたリモート・アドレスへのデータグラムの送信を許可することを検証します。このメソッドはいつでも呼び出すことができます。 呼出し時に進行中の読込み操作または書込み操作には一切影響を及ぼしません。 このチャネルのソケットがバインドされていない場合は、このメソッドは
bindメソッドをnullのパラメータで呼び出した場合と同様に、最初にソケットを自動的に割り当てられるアドレスにバインドします。- パラメータ:
remote- このチャネルの接続先リモート・アドレス- 戻り値:
- このデータグラム・チャネル
- 例外:
AlreadyConnectedException- このチャネルがすでに接続されている場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 接続操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 接続操作の進行中に別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合UnresolvedAddressException- 指定されたリモート・アドレスが完全に解決されない場合UnsupportedAddressTypeException- 指定されたリモート・アドレスのタイプがサポート対象外の場合SecurityException- セキュリティ・マネージャがインストールされていて、指定されたリモート・アドレスへのアクセスが許可されていない場合IOException- その他の入出力エラーが発生した場合
-
disconnect
public abstract DatagramChannel disconnect() throws IOExceptionこのチャネルのソケットの接続を切断します。チャネルのソケットは、インストールされているセキュリティ・マネージャから許可された場合にかぎり、あらゆるリモート・アドレスとデータグラムをやりとりできます。
このメソッドはいつでも呼び出すことができます。 呼出し時に進行中の読込み操作または書込み操作には一切影響を及ぼしません。
このチャネルのソケットが接続されていない場合、またはチャネルがクローズしている場合、このメソッドを呼び出しても何の効果もありません。
- 戻り値:
- このデータグラム・チャネル
- 例外:
IOException- その他の入出力エラーが発生した場合
-
getRemoteAddress
public abstract SocketAddress getRemoteAddress() throws IOExceptionこのチャネルのソケットが接続されているリモート・アドレスを返します。- 戻り値:
- リモート・アドレス。チャネルのソケットが接続されていない場合は
null - 例外:
ClosedChannelException- チャネルがクローズしている場合IOException- 入出力エラーが発生した場合- 導入されたバージョン:
- 1.7
-
receive
public abstract SocketAddress receive(ByteBuffer dst) throws IOExceptionこのチャネルからデータグラムを受信します。データグラムをただちに使用できる場合(このチャネルがブロック・モードで動作していてデータグラム1個を使用できる場合)は、データグラムが指定されたbyteバッファにコピーされたあと、ソース・アドレスが返されます。 このチャネルが非ブロック・モードで動作していてデータグラムをすぐに使用できない場合は、ただちに
nullが返されます。データグラムは、通常の
read操作の場合と同様に、指定されたbyteバッファの現在位置に転送されます。 バッファ内に残っているバイト数がデータグラムの格納に必要なバイト数より少ない場合、収まりきらなかったデータグラムは通知なしで破棄されます。このメソッドは、
DatagramSocketクラスのreceiveメソッドとまったく同じセキュリティ・チェックを行います。 ソケットが特定のリモート・アドレスに接続されておらず、セキュリティ・マネージャがインストールされている場合、このメソッドは、受信されたデータグラムごとにソースのアドレスとポート番号がセキュリティ・マネージャのcheckAcceptメソッドによって許可されていることを検証します。 このセキュリティ・チェックのオーバーヘッドを回避するには、最初にconnectメソッドを使ってソケットを接続します。このメソッドはいつでも呼び出すことができます。 ただし、ほかのスレッドがこのチャネルに対して読込み操作を開始している場合、このメソッドの呼出しは最初の操作が終わるまでブロックされます。 このチャネルのソケットがバインドされていない場合は、このメソッドは
bindメソッドをnullのパラメータで呼び出した場合と同様に、最初にソケットを自動的に割り当てられるアドレスにバインドします。- パラメータ:
dst- データグラムの転送先バッファ- 戻り値:
- データグラムのソース・アドレス。または、このチャネルが非ブロック・モードで動作していて、すぐに使用できるデータグラムがない場合は
null - 例外:
ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 読取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 読取り操作の進行中に、別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合SecurityException- セキュリティ・マネージャがインストールされていて、データグラムの送信側がデータグラムの受信を許可していない場合IOException- その他の入出力エラーが発生した場合
-
send
public abstract int send(ByteBuffer src, SocketAddress target) throws IOExceptionこのチャネルからデータグラムを送信します。チャネルの動作モードが非ブロック・モードで基準となる出力バッファの容量が十分でない場合や、動作モードがブロック・モードで十分な容量がある場合、指定されたバッファ内に残っているバイトは単一のデータグラムとして指定されたターゲット・アドレスへ転送されます。
データグラムは、通常の
write操作を実行した場合と同様に、byteバッファから転送されます。このメソッドは、
DatagramSocketクラスのsendメソッドとまったく同じセキュリティ・チェックを行います。 ソケットが特定のリモート・アドレスに接続されておらず、セキュリティ・マネージャがインストールされている場合、このメソッドは、送信されたデータグラムごとにターゲットのアドレスとポート番号がセキュリティ・マネージャのcheckConnectメソッドによって許可されていることを検証します。 このセキュリティ・チェックのオーバーヘッドを回避するには、最初にconnectメソッドを使ってソケットを接続します。このメソッドはいつでも呼び出すことができます。 ただし、ほかのスレッドがこのチャネルに対して書込み操作を開始している場合、このメソッドの呼出しは最初の操作が終わるまでブロックされます。 このチャネルのソケットがバインドされていない場合は、このメソッドは
bindメソッドをnullのパラメータで呼び出した場合と同様に、最初にソケットを自動的に割り当てられるアドレスにバインドします。- パラメータ:
src- 送信されるデータグラムを含むバッファtarget- データグラムの送信先アドレス- 戻り値:
- 送信バイト数。このメソッドを呼び出したときにソース・バッファ内に残っていたバイト数。このチャネルが非ブロック・モードで動作しており、基準となる出力バッファの容量が不十分なためデータグラムが収まりきらない場合はゼロ
- 例外:
AlreadyConnectedException- このチャネルがtargetで指定されたものとは異なるアドレスに接続されている場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 読取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 読取り操作の進行中に、別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合UnresolvedAddressException- 指定されたリモート・アドレスが完全に解決されない場合UnsupportedAddressTypeException- 指定されたリモート・アドレスのタイプがサポート対象外の場合SecurityException- セキュリティ・マネージャがインストールされていて、指定されたアドレスへのデータグラムの送信が許可されていない場合IOException- その他の入出力エラーが発生した場合
-
read
public abstract int read(ByteBuffer dst) throws IOExceptionこのチャネルからデータグラムを読み込みます。このメソッドは、このチャネルのソケットが接続されている場合に限り呼び出すことができ、そのソケットのピアからのデータグラムのみを受け付けます。 指定されたバッファ内に残っているバイト数よりデータグラムのバイト数のほうが多い場合、収まりきらなかったバイトは通知なく破棄されます。 それ以外の場合は、このメソッドは
ReadableByteChannelインタフェースの指定どおりに動作します。- 定義:
read、インタフェース:ReadableByteChannel- パラメータ:
dst- バイトの転送先バッファ- 戻り値:
- 読み取られたバイト数。ゼロの場合もある。チャネルがストリームの終わりに達した場合は
-1 - 例外:
NotYetConnectedException- このチャネルのソケットが接続されていない場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 読取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 読取り操作の進行中に、別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合IOException- その他の入出力エラーが発生した場合
-
read
public abstract long read(ByteBuffer[] dsts, int offset, int length) throws IOExceptionこのチャネルからデータグラムを読み込みます。このメソッドは、このチャネルのソケットが接続されている場合に限り呼び出すことができ、そのソケットのピアからのデータグラムのみを受け付けます。 指定されたバッファ内に残っているバイト数よりデータグラムのバイト数のほうが多い場合、収まりきらなかったバイトは通知なく破棄されます。 それ以外の場合は、このメソッドは
ScatteringByteChannelインタフェースの指定どおりに動作します。- 定義:
read、インタフェース:ScatteringByteChannel- パラメータ:
dsts- バイトの転送先バッファoffset- 最初のバイトの転送先となるバッファ配列内のオフセット。dsts.length以下の負でない値length- アクセスされる最大バッファ数。dsts.length-offset以下の負でない値- 戻り値:
- 読み取られたバイト数。ゼロの場合もある。チャネルがストリームの終わりに達した場合は
-1 - 例外:
NotYetConnectedException- このチャネルのソケットが接続されていない場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 読取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 読取り操作の進行中に、別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合IOException- その他の入出力エラーが発生した場合
-
read
public final long read(ByteBuffer[] dsts) throws IOExceptionこのチャネルからデータグラムを読み込みます。このメソッドは、このチャネルのソケットが接続されている場合に限り呼び出すことができ、そのソケットのピアからのデータグラムのみを受け付けます。 指定されたバッファ内に残っているバイト数よりデータグラムのバイト数のほうが多い場合、収まりきらなかったバイトは通知なく破棄されます。 それ以外の場合は、このメソッドは
ScatteringByteChannelインタフェースの指定どおりに動作します。- 定義:
read、インタフェース:ScatteringByteChannel- パラメータ:
dsts- バイトの転送先バッファ- 戻り値:
- 読み取られたバイト数。ゼロの場合もある。チャネルがストリームの終わりに達した場合は
-1 - 例外:
NotYetConnectedException- このチャネルのソケットが接続されていない場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 読取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 読取り操作の進行中に、別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合IOException- その他の入出力エラーが発生した場合
-
write
public abstract int write(ByteBuffer src) throws IOExceptionこのチャネルへデータグラムを書き込みます。このメソッドは、このチャネルのソケットが接続されている場合に限り呼び出すことができ、そのソケットのピアに直接データグラムを送信します。 それ以外の場合は、
WritableByteChannelインタフェースの指定どおりに動作します。- 定義:
write、インタフェース:WritableByteChannel- パラメータ:
src- バイトの取得先バッファ- 戻り値:
- 書き込まれるバイト数。ゼロの場合もある
- 例外:
NotYetConnectedException- このチャネルのソケットが接続されていない場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 書込み操作の進行中に別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 書込み中に別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合IOException- その他の入出力エラーが発生した場合
-
write
public abstract long write(ByteBuffer[] srcs, int offset, int length) throws IOExceptionこのチャネルへデータグラムを書き込みます。このメソッドは、このチャネルのソケットが接続されている場合に限り呼び出すことができ、そのソケットのピアに直接データグラムを送信します。 それ以外の場合は、
GatheringByteChannelインタフェースの指定どおりに動作します。- 定義:
write、インタフェース:GatheringByteChannel- パラメータ:
srcs- バイトの取得先バッファoffset- 最初のバイトの取得先となるバッファ配列内のオフセット。srcs.length以下の負でない値length- アクセスされる最大バッファ数。srcs.length-offset以下の負でない値- 戻り値:
- 送信バイト数。このメソッドを呼び出したときにソース・バッファ内に残っていたバイト数。このチャネルが非ブロック・モードで動作しており、基準となる出力バッファの容量が不十分なためデータグラムが収まりきらない場合はゼロ
- 例外:
NotYetConnectedException- このチャネルのソケットが接続されていない場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 書込み操作の進行中に別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 書込み中に別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合IOException- その他の入出力エラーが発生した場合
-
write
public final long write(ByteBuffer[] srcs) throws IOExceptionこのチャネルへデータグラムを書き込みます。このメソッドは、このチャネルのソケットが接続されている場合に限り呼び出すことができ、そのソケットのピアに直接データグラムを送信します。 それ以外の場合は、
GatheringByteChannelインタフェースの指定どおりに動作します。- 定義:
write、インタフェース:GatheringByteChannel- パラメータ:
srcs- バイトの取得先バッファ- 戻り値:
- 送信バイト数。このメソッドを呼び出したときにソース・バッファ内に残っていたバイト数。このチャネルが非ブロック・モードで動作しており、基準となる出力バッファの容量が不十分なためデータグラムが収まりきらない場合はゼロ
- 例外:
NotYetConnectedException- このチャネルのソケットが接続されていない場合ClosedChannelException- このチャネルがクローズしている場合AsynchronousCloseException- 書込み操作の進行中に別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException- 書込み中に別のスレッドからの割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合IOException- その他の入出力エラーが発生した場合
-
getLocalAddress
public abstract SocketAddress getLocalAddress() throws IOExceptionこのチャネルのソケットがバインドされているソケット・アドレスを返します。チャネルがInternet Protocolソケット・アドレスに
バインドされている場合は、このメソッドからの戻り値の型はInetSocketAddressです。セキュリティ・マネージャが設定されている場合は、セキュリティ・マネージャの
checkConnectメソッドがローカル・アドレスおよび-1を引数として呼び出され、操作が許可されるかどうかが確認されます。 この操作が許可されない場合は、ループバック・アドレスおよびチャネルのソケットのローカル・ポートを表すSocketAddressが返されます。- 定義:
getLocalAddress、インタフェース:NetworkChannel- 戻り値:
- ソケットがバインドされている
SocketAddress、またはセキュリティ・マネージャによって拒否された場合はループバック・アドレスを表すSocketAddress、またはチャネルのソケットがバインドされていない場合はnull - 例外:
ClosedChannelException- チャネルがクローズしている場合IOException- 入出力エラーが発生した場合
-