AsynchronousSocketChannel クラス

定義

ストリーム指向接続ソケットの非同期チャネル。

[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
継承
AsynchronousSocketChannel
属性
実装

注釈

ストリーム指向接続ソケットの非同期チャネル。

非同期ソケット チャネルは、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

この Objectのランタイム クラスを返します。

(継承元 Object)
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)

ストリーム指向接続ソケットの非同期チャネル。

適用対象