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"><キャプション 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<>><><java.net.StandardSocketOptions#SO_LINGER SO_LINGER
<>データ><が存在する場合 (ブロック モードでのみ構成されている場合) </td/tr tr><th><scope="row"java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY
<>/th><td> Nagle アルゴリズム </td><<>/tr></tbody<>/table></blockquote> 追加 (実装固有) オプションもサポートされる場合があります。
ソケット チャネルは、複数の同時実行スレッドで使用しても安全です。 同時読み取りと書き込みをサポートしていますが、最大で 1 つのスレッドが読み取りであり、最大 1 つのスレッドが任意の時点で書き込みを行う場合があります。 #connect connect
メソッドと #finishConnect finishConnect
メソッドは相互に同期され、これらのメソッドの呼び出しが進行中に読み取り操作または書き込み操作を開始しようとすると、その呼び出しが完了するまでブロックされます。
1.4 で追加されました。
の Java ドキュメント java.nio.channels.SocketChannel
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
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[]) |
このソケット チャネルからバイトを読み取り、指定されたバッファー配列に格納します。 |
Read(ByteBuffer[], Int32, Int32) |
このソケット チャネルから特定のバッファーのサブセットにバイトを読み取ります。 |
Register(Selector, Operations) |
このチャネルを指定されたセレクターに登録し、選択キーを返します。 (継承元 SelectableChannel) |
Register(Selector, Operations, Object) |
このチャネルを指定されたセレクターに登録し、選択キーを返します。 (継承元 AbstractSelectableChannel) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetOption(ISocketOption, Object) |
1 に追加されました。 |
ShutdownInput() |
チャネルを閉じずに読み取り用の接続をシャットダウンします。 |
ShutdownOutput() |
チャネルを閉じずに書き込み用に接続をシャットダウンします。 |
Socket() |
このチャネルに関連付けられているソケットを取得します。 |
ToArray<T>() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
ストリーム指向接続ソケット用の選択可能なチャネル。 (継承元 Object) |
ValidOps() |
このチャネルでサポートされている操作を識別する操作セットを返します。 |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Write(ByteBuffer) |
指定されたバイト バッファーからこのソケット チャネルにバイトを書き込みます。 |
Write(ByteBuffer[]) |
指定されたすべてのバイト バッファーからこのソケット チャネルにバイトを書き込みます。 |
Write(ByteBuffer[], Int32, Int32) |
バッファーからこのソケット チャネルに、指定されたバイトのサブセットを書き込もうとします。 |
明示的なインターフェイスの実装
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) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
ReadAsync(IReadableByteChannel, ByteBuffer) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |
WriteAsync(IWritableByteChannel, ByteBuffer) |
ストリーム指向接続ソケット用の選択可能なチャネル。 |