SocketChannel クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ストリーム指向接続ソケット用の選択可能なチャネル。
[Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)]
public abstract class SocketChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IByteChannel, Java.Nio.Channels.IGatheringByteChannel, Java.Nio.Channels.IScatteringByteChannel
[<Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)>]
type SocketChannel = class
inherit AbstractSelectableChannel
interface IByteChannel
interface IReadableByteChannel
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IWritableByteChannel
interface IGatheringByteChannel
interface IScatteringByteChannel
- 継承
- 属性
- 実装
注釈
ストリーム指向接続ソケット用の選択可能なチャネル。
ソケット チャネルは、このクラスのいずれかの #open open メソッドを呼び出すことによって作成されます。 既存の任意のソケットのチャネルを作成することはできません。 新しく作成されたソケット チャネルは開いていますが、まだ接続されていません。 接続されていないチャネルで I/O 操作を呼び出そうとすると、 NotYetConnectedException がスローされます。 ソケット チャネルは、その #connect connect メソッドを呼び出すことによって接続できます。接続されると、ソケット チャネルは閉じられるまで接続されたままになります。 ソケット チャネルが接続されているかどうかは、その #isConnected isConnected メソッドを呼び出すことによって決定できます。
ソケット チャネルは非ブロッキング接続をサポートしています: ソケット チャネルを作成し、リモート ソケットへのリンクを確立するプロセスを、#finishConnect finishConnect メソッドによって後で完了するために、#connect connect メソッドを使用して開始できます。 接続操作が進行中かどうかは、 #isConnectionPending isConnectionPending メソッドを呼び出すことによって判断できます。
ソケット チャネルは 非同期シャットダウン をサポートします。これは、 Channel クラスで指定された非同期閉じる操作に似ています。 ソケットの入力側が 1 つのスレッドによってシャットダウンされ、別のスレッドがソケットのチャネルの読み取り操作でブロックされている場合、ブロックされたスレッドの読み取り操作はバイトを読み取らずに完了し、 -1を返します。 ソケットの出力側が 1 つのスレッドによってシャットダウンされ、別のスレッドがソケットのチャネルの書き込み操作でブロックされている場合、ブロックされたスレッドは AsynchronousCloseExceptionを受け取ります。
ソケット オプションは、 #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> ソケット送信バッファーのサイズ </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#SO_LINGER SO_LINGER</th><td> データが存在する場合 (ブロック モードでのみ構成されている場合) </td></tr><tr><th scope="row">java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th><> Nagle アルゴリズム </td></tr></tbody></table></blockquote を無効にする> 追加 (実装固有) オプションもサポートされる場合があります。
ソケット チャネルは、複数の同時実行スレッドで安全に使用できます。 同時読み取りと書き込みをサポートしますが、最大で 1 つのスレッドが読み取りを行い、最大 1 つのスレッドが任意の時点で書き込みを行う場合があります。
#connect connectメソッドと#finishConnect finishConnect メソッドは相互に同期され、これらのメソッドの呼び出しが進行中に読み取りまたは書き込み操作を開始しようとすると、その呼び出しが完了するまでブロックされます。
1.4 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| SocketChannel(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
| SocketChannel(SelectorProvider) |
このクラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| IsBlocking |
このチャネルがブロック モードであるかどうかを示します。 (継承元 AbstractSelectableChannel) |
| IsConnected |
このチャネルのソケットが接続されているかどうかを示します。 |
| IsConnectionPending |
このチャネルのソケットがまだ接続しようとしているかどうかを示します。 |
| IsOpen |
このチャネルが開いている場合は true を返します。 (継承元 AbstractInterruptibleChannel) |
| IsRegistered |
このチャネルが 1 つ以上のセレクターに登録されているかどうかを示します。 (継承元 AbstractSelectableChannel) |
| JniIdentityHashCode |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| JniPeerMembers |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| LocalAddress |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| PeerReference |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| RemoteAddress |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| Begin() |
無期限にブロックする可能性がある I/O 操作の開始をマークします。 (継承元 AbstractInterruptibleChannel) |
| Bind(SocketAddress) |
1 に追加されました。 |
| BlockingLock() |
|
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Close() |
このチャネルを閉じます。 (継承元 AbstractInterruptibleChannel) |
| ConfigureBlocking(Boolean) |
このチャネルのブロッキング モードを調整します。 (継承元 AbstractSelectableChannel) |
| Connect(SocketAddress) |
このチャネルのソケットを接続します。 |
| ConnectAsync(SocketAddress) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| Dispose() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| Dispose(Boolean) |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| End(Boolean) |
無期限にブロックする可能性がある I/O 操作の終了をマークします。 (継承元 AbstractInterruptibleChannel) |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| FinishConnect() |
ソケット チャネルの接続プロセスを完了します。 |
| FinishConnectAsync() |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| ImplCloseChannel() |
このチャネルを閉じます。 (継承元 AbstractSelectableChannel) |
| ImplCloseSelectableChannel() |
この選択可能なチャネルを閉じます。 (継承元 AbstractSelectableChannel) |
| ImplConfigureBlocking(Boolean) |
このチャネルのブロッキング モードを調整します。 (継承元 AbstractSelectableChannel) |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| KeyFor(Selector) |
指定したセレクターのこのチャネルの選択キーを取得します。 (継承元 AbstractSelectableChannel) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| Open() |
ソケット チャネルを開きます。 |
| Open(SocketAddress) |
ソケット チャネルを開き、リモート アドレスに接続します。 |
| Provider() |
このチャネルを作成したプロバイダーを返します。 (継承元 AbstractSelectableChannel) |
| Read(ByteBuffer) |
このソケット チャネルから特定のバッファーにバイトを読み取ります。 |
| Read(ByteBuffer[], Int32, Int32) |
このソケット チャネルから特定のバッファーのサブセットにバイトを読み取ります。 |
| Read(ByteBuffer[]) |
このソケット チャネルからバイトを読み取り、指定されたバッファー配列に格納します。 |
| Register(Selector, Operations, Object) |
このチャネルを指定されたセレクターに登録し、選択キーを返します。 (継承元 AbstractSelectableChannel) |
| Register(Selector, Operations) |
このチャネルを指定されたセレクターに登録し、選択キーを返します。 (継承元 SelectableChannel) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetOption(ISocketOption, Object) |
1 に追加されました。 |
| ShutdownInput() |
チャネルを閉じずに、読み取り用の接続をシャットダウンします。 |
| ShutdownOutput() |
チャネルを閉じずに、書き込み用に接続をシャットダウンします。 |
| Socket() |
このチャネルに関連付けられているソケットを取得します。 |
| ToArray<T>() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| ValidOps() |
このチャネルでサポートされている操作を識別する操作セットを返します。 |
| 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) |
指定されたバイト バッファーからこのソケット チャネルにバイトを書き込みます。 |
| Write(ByteBuffer[], Int32, Int32) |
バッファーからこのソケット チャネルに、指定されたバイトのサブセットを書き込もうとします。 |
| Write(ByteBuffer[]) |
指定されたすべてのバイト バッファーからこのソケット チャネルにバイトを書き込みます。 |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| IJavaPeerable.Finalized() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| IJavaPeerable.JniManagedPeerState |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |