Language

DatagramChannel.Receive(ByteBuffer) メソッド

定義

このチャネルを介してデータグラムを受信します。

[Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")]
public abstract Java.Net.SocketAddress? Receive(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")>]
abstract member Receive : Java.Nio.ByteBuffer -> Java.Net.SocketAddress

パラメーター

dst
ByteBuffer

データグラムの転送先となるバッファー

返品

データグラムのソース アドレス。このチャネルが非ブロッキング モードで、データグラムがすぐに使用できなかった場合にnull

属性

例外

チャネルが既に閉じている場合は 。

このメソッドが動作している間にチャネルが別のスレッドによって閉じられた場合。

操作の進行中に別のスレッドが呼び出し元のスレッドを中断した場合。 呼び出し元のスレッドに割り込み状態が設定され、チャネルが閉じられます。

その他の I/O エラーが発生します。

注釈

このチャネルを介してデータグラムを受信します。

データグラムがすぐに使用可能になった場合、またはこのチャネルがブロック モードで、最終的に使用可能になった場合、データグラムは指定されたバイト バッファーにコピーされ、そのソース アドレスが返されます。 このチャネルが非ブロッキング モードで、データグラムがすぐに使用できない場合、このメソッドはすぐに nullを返します。

データグラムは、通常の ReadableByteChannel#read(java.nio.ByteBuffer) read 操作の場合と同様に、現在の位置から始まる特定のバイト バッファーに転送されます。 バッファーに残っているバイト数が、データグラムを保持するために必要なバイト数よりも少ない場合、データグラムの残りの部分は暗黙的に破棄されます。

このメソッドは、java.net.DatagramSocket#receive receive クラスのjava.net.DatagramSocket メソッドとまったく同じセキュリティ チェックを実行します。 つまり、ソケットが特定のリモート アドレスに接続されておらず、セキュリティ マネージャーがインストールされている場合、このメソッドを受信したデータグラムごとに、ソースのアドレスとポート番号がセキュリティ マネージャーの java.lang.SecurityManager#checkAccept checkAccept メソッドによって許可されていることを確認します。 このセキュリティ チェックのオーバーヘッドは、最初に #connect connect メソッドを使用してソケットを接続することで回避できます。

このメソッドはいつでも呼び出すことができます。 ただし、別のスレッドがこのチャネルで既に読み取り操作を開始している場合、このメソッドの呼び出しは、最初の操作が完了するまでブロックされます。 このチャネルのソケットがバインドされていない場合、このメソッドは、#bind bindのパラメーターを使用してnull メソッドを呼び出すかのように、最初にソケットが自動的に割り当てられたアドレスにバインドされます。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象