言語

AsynchronousSocketChannel クラス

定義

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

[Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousSocketChannel : Java.Lang.Object, IDisposable, 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"><caption style="display:none">Socket options</caption><thead><tr><th scope="col">Option Name<><th scope="col">Description</th></tr></thead><tbody><tr><th scope="row">java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF</th><td> ソケット送信のサイズbuffer </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> 接続を維持する </td></tr><tr><th scope="row">java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR</th><td> アドレス </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>error 状態</em>に配置されます。 その後、 read 操作を開始しようとすると、指定されていないランタイム例外がスローされます。 同様に、 write 操作がタイムアウトし、実装でバイトがチャネルに書き込まれていないと保証できない場合、チャネルへの write を試行すると、指定されていないランタイム例外がスローされます。 タイムアウトが経過すると、I/O 操作の ByteBufferの状態またはバッファーのシーケンスは定義されません。 バッファーは破棄するか、少なくとも注意して、チャネルが開いている間はバッファーにアクセスしないようにする必要があります。 タイムアウト パラメーターを受け入れるすべてのメソッドは、0 以下の値を処理して、I/O 操作がタイムアウトしないことを意味します。

1.7 で追加されました。

Javaドキュメント。

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

コンストラクター

名前 説明
AsynchronousSocketChannel(AsynchronousChannelProvider)

このクラスの新しいインスタンスを初期化します。

AsynchronousSocketChannel(IntPtr, JniHandleOwnership)

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

プロパティ

名前 説明
Class

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

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsOpen

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

JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

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

(継承元 JavaObject)
JniPeerMembers

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

LocalAddress

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

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
RemoteAddress

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

ThresholdClass

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

ThresholdType

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

メソッド

名前 説明
Bind(SocketAddress)

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

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Close()

このチャネルを閉じます。

Connect(SocketAddress, Object, ICompletionHandler)

このチャネルを接続します。

Connect(SocketAddress)

このチャネルを接続します。

Construct(JniObjectReference, JniObjectReferenceOptions)

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

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

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

(継承元 JavaObject)
Equals(Object)

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

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Open()

非同期ソケット チャネルを開きます。

Open(AsynchronousChannelGroup)

非同期ソケット チャネルを開きます。

Provider()

このチャネルを作成したプロバイダーを返します。

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

このチャネルから特定のバッファーにバイト シーケンスを読み取ります。

Read(ByteBuffer, Object, ICompletionHandler)

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

Read(ByteBuffer)

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

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

このチャネルから特定のバッファーのサブシーケンスにバイトシーケンスを読み取ります。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetOption(ISocketOption, Object)

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

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

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

(継承元 JavaObject)
ShutdownInput()

チャネルを閉じずに、読み取り用の接続をシャットダウンします。

ShutdownOutput()

チャネルを閉じずに、書き込み用に接続をシャットダウンします。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列表現を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

指定されたバッファーからこのチャネルにバイト シーケンスを書き込みます。

Write(ByteBuffer, Object, ICompletionHandler)

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

Write(ByteBuffer)

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

Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

指定されたバッファーのサブシーケンスからこのチャネルにバイト シーケンスを書き込みます。

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

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

(継承元 JavaObject)
IJavaPeerable.Finalized()

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

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

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

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象