Language

DatagramChannel.Send(ByteBuffer, SocketAddress) メソッド

定義

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

[Android.Runtime.Register("send", "(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I", "GetSend_Ljava_nio_ByteBuffer_Ljava_net_SocketAddress_Handler")]
public abstract int Send(Java.Nio.ByteBuffer? src, Java.Net.SocketAddress? target);
[<Android.Runtime.Register("send", "(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I", "GetSend_Ljava_nio_ByteBuffer_Ljava_net_SocketAddress_Handler")>]
abstract member Send : Java.Nio.ByteBuffer * Java.Net.SocketAddress -> int

パラメーター

src
ByteBuffer

送信するデータグラムを含むバッファー

target
SocketAddress

データグラムの送信先となるアドレス

返品

送信されたバイト数。これは、このメソッドが呼び出されたときにソース バッファーに残っていたバイト数か、このチャネルが非ブロッキングの場合、基になる出力バッファーにデータグラムの空き領域が不足していた場合は 0 になる可能性があります。

属性

例外

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

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

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

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

注釈

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

このチャネルが非ブロッキング モードで、基になる出力バッファーに十分な領域がある場合、またはこのチャネルがブロック モードで十分な領域が使用可能になった場合、指定されたバッファー内の残りのバイトは、指定されたターゲット アドレスに 1 つのデータグラムとして送信されます。

データグラムは、通常の WritableByteChannel#write(java.nio.ByteBuffer) write 操作と同様にバイト バッファーから転送されます。

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

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

Javaドキュメント。

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

適用対象