AsynchronousSocketChannel クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ストリーム指向接続ソケットの非同期チャネル。
[Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousSocketChannel : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IAsynchronousByteChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousSocketChannel = class
inherit Object
interface IAsynchronousByteChannel
interface IAsynchronousChannel
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 継承
- 属性
- 実装
注釈
ストリーム指向接続ソケットの非同期チャネル。
非同期ソケット チャネルは、2 つの方法のいずれかで作成されます。 新しく作成 AsynchronousSocketChannel
された は、このクラスで定義されている #open open
メソッドのいずれかを呼び出すことによって作成されます。 新しく作成されたチャネルは開かれていますが、まだ接続されていません。 の AsynchronousSocketChannel
ソケット AsynchronousServerSocketChannel
への接続が行われると、接続が作成されます。 任意の既存 java.net.Socket socket
の に対して非同期ソケット チャネルを作成することはできません。
新しく作成されたチャネルは、その #connect connect
メソッドを呼び出すことによって接続されます。接続されると、チャネルは閉じられるまで接続されたままになります。 ソケット チャネルが接続されているかどうかは、その #getRemoteAddress getRemoteAddress
メソッドを呼び出すことによって決定できます。 接続されていないチャネルで I/O 操作を呼び出そうとすると、 が NotYetConnectedException
スローされます。
この種類のチャネルは、複数の同時実行スレッドで使用しても安全です。 同時読み取りと書き込みをサポートしますが、最大で 1 つの読み取り操作と 1 つの書き込み操作をいつでも未処理にすることができます。 以前の読み取り操作が完了する前にスレッドが読み取り操作を開始すると、 ReadPendingException
がスローされます。 同様に、以前の書き込みが完了する前に書き込み操作を開始しようとすると、 WritePendingException
がスローされます。
ソケット オプションは、 メソッドを #setOption(SocketOption,Object) setOption
使用して構成されます。 非同期ソケット チャネルでは、次のオプションがサポートされています。 <blockquote<>table class="striped"><キャプション style="display:none">Socket options</キャプション><thead><tr><th scope="col">Option Name</th th><scope="col">Description</th></tr></thead<>tbody<>tr><th scope="row">java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF
</th><td> ソケット送信バッファー<のサイズ /td<>/tr tr<<>>th scope="row">java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF
</th<>td> ソケット受信バッファー<のサイズ /td<>/tr tr>><<th scope="row"java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE
></th<>td> Keep connection alive </td></tr tr<>><th scope="row"<java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR
>/th<>td Re-use address </td>></tr tr><><th scope="row"><java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY
/th><td> Nagle アルゴリズム </td<>/tr></tbody<>/table></blockquote> 追加 (実装固有) オプションもサポートされる場合があります。
<h2>Timeouts</h2>
#read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read
このクラスで定義されている メソッドと #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write
メソッドを使用すると、読み取り操作または書き込み操作を開始するときにタイムアウトを指定できます。 操作が完了する前にタイムアウトが経過すると、操作は例外 InterruptedByTimeoutException
で完了します。 タイムアウトすると、チャネルまたは基になる接続が不整合な状態になる可能性があります。 実装では、チャネルからバイトが読み取られないことを保証できない場合は、チャネルを実装固有 <の em>エラー状態</em> に配置します。 その後、操作を read
開始しようとすると、指定されていないランタイム例外がスローされます。 同様に、操作が write
タイムアウトし、実装でバイトがチャネルに書き込まれていないことが保証できない場合は、チャネルに対して write
さらに試行すると、指定されていないランタイム例外がスローされます。 タイムアウトが経過すると、I/O 操作の ByteBuffer
、、またはバッファーのシーケンスの状態は定義されません。 チャネルが開いている間はバッファーにアクセスしないように、バッファーを破棄するか、少なくとも注意する必要があります。 タイムアウト パラメーターを受け取るメソッドはすべて、0 以下の値を処理して、I/O 操作がタイムアウトしないことを意味します。
1.7 で追加されました。
の Java ドキュメント java.nio.channels.AsynchronousSocketChannel
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
AsynchronousSocketChannel(AsynchronousChannelProvider) |
このクラスの新しいインスタンスを初期化します。 |
AsynchronousSocketChannel(IntPtr, JniHandleOwnership) |
ストリーム指向接続ソケットの非同期チャネル。 |
プロパティ
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
IsOpen |
ストリーム指向接続ソケットの非同期チャネル。 |
JniIdentityHashCode |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
JniPeerMembers |
ストリーム指向接続ソケットの非同期チャネル。 |
LocalAddress |
ストリーム指向接続ソケットの非同期チャネル。 |
PeerReference |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
RemoteAddress |
ストリーム指向接続ソケットの非同期チャネル。 |
ThresholdClass |
ストリーム指向接続ソケットの非同期チャネル。 |
ThresholdType |
ストリーム指向接続ソケットの非同期チャネル。 |
メソッド
Bind(SocketAddress) |
ストリーム指向接続ソケットの非同期チャネル。 |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Close() |
このチャネルを閉じます。 |
Connect(SocketAddress) |
このチャネルを接続します。 |
Connect(SocketAddress, Object, ICompletionHandler) |
このチャネルを接続します。 |
Dispose() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
Dispose(Boolean) |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
Open() |
非同期ソケット チャネルを開きます。 |
Open(AsynchronousChannelGroup) |
非同期ソケット チャネルを開きます。 |
Provider() |
このチャネルを作成したプロバイダーを返します。 |
Read(ByteBuffer) |
ストリーム指向接続ソケットの非同期チャネル。 |
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
このチャネルから特定のバッファーにバイトシーケンスを読み取ります。 |
Read(ByteBuffer, Object, ICompletionHandler) |
ストリーム指向接続ソケットの非同期チャネル。 |
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
このチャネルから特定のバッファーのサブシーケンスにバイトシーケンスを読み取ります。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetOption(ISocketOption, Object) |
ストリーム指向接続ソケットの非同期チャネル。 |
ShutdownInput() |
チャネルを閉じずに読み取り用の接続をシャットダウンします。 |
ShutdownOutput() |
チャネルを閉じずに書き込み用に接続をシャットダウンします。 |
ToArray<T>() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Write(ByteBuffer) |
ストリーム指向接続ソケットの非同期チャネル。 |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。 |
Write(ByteBuffer, Object, ICompletionHandler) |
ストリーム指向接続ソケットの非同期チャネル。 |
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
指定されたバッファーのサブシーケンスから、このチャネルにバイト シーケンスを書き込みます。 |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
IJavaPeerable.Finalized() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
ストリーム指向接続ソケットの非同期チャネル。 |
GetJniTypeName(IJavaPeerable) |
ストリーム指向接続ソケットの非同期チャネル。 |