次の方法で共有


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

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

の Java ドキュメントjava.nio.channels.DatagramChannel.receive(java.nio.ByteBuffer)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象