AsynchronousSocketChannel.Write メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。 |
Write(ByteBuffer) | |
Write(ByteBuffer, Object, ICompletionHandler) | |
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
指定されたバッファーのサブシーケンスからこのチャネルにバイトシーケンスを書き込みます。 |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)
指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_JLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Write (Java.Nio.ByteBuffer? src, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_JLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
パラメーター
- src
- ByteBuffer
バイトの取得元となるバッファー
- timeout
- Int64
I/O 操作が完了するまでの最大時間
- unit
- TimeUnit
引数の timeout
時間単位
- attachment
- Object
I/O 操作にアタッチするオブジェクト。を指定できます null
- handler
- ICompletionHandler
結果を使用するためのハンドラー
- 属性
注釈
指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。
このメソッドは、指定されたバッファーからこのチャネルにバイトシーケンスを書き込む非同期書き込み操作を開始します。 パラメーターは handler
、書き込み操作が完了 (または失敗) したときに呼び出される完了ハンドラーです。 完了ハンドラーに渡される結果は、書き込まれたバイト数です。
タイムアウトが指定され、操作が完了する前にタイムアウトが経過すると、 は例外 InterruptedByTimeoutException
で完了します。 タイムアウトが発生し、実装では、バイトが書き込まれていないか、指定されたバッファーからチャネルに書き込まれていないことを保証できません。その後、チャネルに書き込もうとすると、指定されていないランタイム例外がスローされます。
それ以外の場合、このメソッドは メソッドと同じ方法で AsynchronousByteChannel#write(ByteBuffer,Object,CompletionHandler)
動作します。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
適用対象
Write(ByteBuffer)
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Write (Java.Nio.ByteBuffer? src);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler", ApiSince=26)>]
abstract member Write : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture
パラメーター
- src
- ByteBuffer
戻り値
実装
- 属性
注釈
の java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer)
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
適用対象
Write(ByteBuffer, Object, ICompletionHandler)
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Write (Java.Nio.ByteBuffer? src, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
override this.Write : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
パラメーター
- src
- ByteBuffer
- attachment
- Object
- handler
- ICompletionHandler
実装
- 属性
注釈
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
適用対象
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)
指定されたバッファーのサブシーケンスからこのチャネルにバイトシーケンスを書き込みます。
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_arrayLjava_nio_ByteBuffer_IIJLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Write (Java.Nio.ByteBuffer[]? srcs, int offset, int length, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_arrayLjava_nio_ByteBuffer_IIJLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer[] * int * int * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
パラメーター
- srcs
- ByteBuffer[]
バイトの取得元となるバッファー
- offset
- Int32
バイトを取得する最初のバッファーのバッファー配列内のオフセット。負以外の値を指定する必要があります。 srcs.length
- length
- Int32
アクセスするバッファーの最大数。負以外の値を指定する必要があります。 srcs.length - offset
- timeout
- Int64
I/O 操作が完了するまでの最大時間
- unit
- TimeUnit
引数の timeout
時間単位
- attachment
- Object
I/O 操作にアタッチするオブジェクト。を指定できます null
- handler
- ICompletionHandler
結果を使用するためのハンドラー
- 属性
注釈
指定されたバッファーのサブシーケンスからこのチャネルにバイトシーケンスを書き込みます。 この操作は、書き込み</em> を収集する em>とも呼ばれ<、多くの場合、1 つ以上の固定長ヘッダーとそれに続く可変長本文で構成されるセグメントにデータをグループ化するネットワーク プロトコルを実装する場合に便利です。 パラメーターは handler
、書き込み操作が完了 (または失敗) したときに呼び出される完了ハンドラーです。 完了ハンドラーに渡される結果は、書き込まれたバイト数です。
このメソッドは、このチャネルへの最大 r バイトの書き込みを開始します。 ここで、r は、指定されたバッファー配列の指定されたサブシーケンスに残っているバイトの合計数です。つまり、
<blockquote>
srcs[offset].remaining()
+ srcs[offset+1].remaining()
+ ... + srcs[offset+length-1].remaining()
</blockquote>
書き込みが試行された時点で。
長さ n のバイト シーケンスが書き込まれるとします。ここで 0
、nbsp&;<
nbsp&します。n <=
r. このシーケンスの最初 srcs[offset].remaining()
のバイトまでがバッファー srcs[offset]
から書き込まれ、次 srcs[offset+1].remaining()
のバイトまでがバッファー srcs[offset+1]
から書き込まれます。また、バイト シーケンス全体が書き込まれるまで書き込まれます。 各バッファーから書き込まれるバイト数はできるだけ多いため、最後に更新されたバッファーを除く各更新バッファーの最終位置は、そのバッファーの制限と等しいことが保証されます。 基になるオペレーティング システムでは、I/O 操作で使用できるバッファーの数に制限が課される場合があります。 バッファーの数 (残りバイト数) がこの制限を超えると、I/O 操作はオペレーティング システムで許可されるバッファーの最大数で実行されます。
タイムアウトが指定され、操作が完了する前にタイムアウトが経過すると、 は例外 InterruptedByTimeoutException
で完了します。 タイムアウトが発生し、実装では、バイトが書き込まれていないか、指定されたバッファーからチャネルに書き込まれていないことを保証できません。その後、チャネルに書き込もうとすると、指定されていないランタイム例外がスローされます。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。