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 操作を呼び出そうとすると、a NotYetConnectedException
がスローされます。
この種類のチャネルは、複数の同時実行スレッドで安全に使用できます。 同時読み取りと書き込みをサポートしますが、最大で 1 つの読み取り操作と 1 つの書き込み操作をいつでも未処理にすることができます。 以前の読み取り操作が完了する前にスレッドが読み取り操作を開始すると、a 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 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> 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
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
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, Object, ICompletionHandler) |
このチャネルを接続します。 |
Connect(SocketAddress) |
このチャネルを接続します。 |
Dispose() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
Dispose(Boolean) |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
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) |
ストリーム指向接続ソケットの非同期チャネル。 |
ShutdownInput() |
チャネルを閉じずに、読み取り用の接続をシャットダウンします。 |
ShutdownOutput() |
チャネルを閉じずに、書き込み用に接続をシャットダウンします。 |
ToArray<T>() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
UnregisterFromRuntime() |
ストリーム指向接続ソケットの非同期チャネル。 (継承元 Object) |
Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
指定されたバッファーからこのチャネルにバイト シーケンスを書き込みます。 |
Write(ByteBuffer, Object, ICompletionHandler) |
ストリーム指向接続ソケットの非同期チャネル。 |
Write(ByteBuffer) |
ストリーム指向接続ソケットの非同期チャネル。 |
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) |
ストリーム指向接続ソケットの非同期チャネル。 |