SocketChannel Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein auswählbarer Kanal für streamorientierte Verbindungssockets.
[Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)]
public abstract class SocketChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, 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
- Vererbung
- Attribute
- Implementiert
Hinweise
Ein auswählbarer Kanal für streamorientierte Verbindungssockets.
Ein Socketkanal wird durch Aufrufen einer der #open open Methoden dieser Klasse erstellt. Es ist nicht möglich, einen Kanal für einen beliebigen, bereits vorhandenen Socket zu erstellen. Ein neu erstellter Socketkanal ist geöffnet, aber noch nicht verbunden. Ein Versuch, einen E/A-Vorgang bei einem nicht verbundenen Kanal aufzurufen, führt dazu, dass ein NotYetConnectedException Fehler ausgelöst wird. Ein Socketkanal kann durch Aufrufen der #connect connect Methode verbunden werden. Sobald eine Verbindung hergestellt wurde, bleibt ein Socketkanal verbunden, bis er geschlossen ist. Gibt an, ob ein Socketkanal verbunden ist, kann durch aufrufende #isConnected isConnected Methode bestimmt werden.
Socketkanäle unterstützen nicht blockierende Verbindung: Ein Socketkanal kann erstellt werden, und der Prozess der Einrichtung der Verbindung mit dem Remotesocket kann über die #connect connect Methode zur späteren Fertigstellung der #finishConnect finishConnect Methode initiiert werden. Gibt an, ob ein Verbindungsvorgang ausgeführt wird, kann durch Aufrufen der #isConnectionPending isConnectionPending Methode bestimmt werden.
Socketkanäle unterstützen das asynchrone Herunterfahren, das dem in der Channel Klasse angegebenen asynchronen Schließen-Vorgang ähnelt. Wenn die Eingabeseite eines Sockets von einem Thread heruntergefahren wird, während ein anderer Thread in einem Lesevorgang im Kanal des Sockets blockiert wird, wird der Lesevorgang im blockierten Thread abgeschlossen, ohne Bytes zu lesen und zurückzugeben -1. Wenn die Ausgabeseite eines Sockets von einem Thread heruntergefahren wird, während ein anderer Thread in einem Schreibvorgang im Socketkanal blockiert wird, empfängt der blockierte Thread einen AsynchronousCloseException.
Socketoptionen werden mithilfe der #setOption(SocketOption,Object) setOption Methode konfiguriert. Socketkanäle unterstützen die folgenden Optionen: <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> Die Größe des Socket-Sendepuffers </td></tr tr><><th scope="row">java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF</th><td> The size of the socket receive buffer </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#SO_LINGER SO_LINGER</th><td> Linger on close if data is present (when configured in blocking mode only) </td></tr tr><><th scope="row">java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th><td> Disable the Nagle algorithm </td></tr></tbody></table></blockquote> Additional (implementation specific) options may be supported.
Socketkanäle sind sicher für die Verwendung durch mehrere gleichzeitige Threads. Sie unterstützen gleichzeitiges Lesen und Schreiben, obwohl höchstens ein Thread gelesen werden kann und höchstens ein Thread zu einem bestimmten Zeitpunkt geschrieben werden kann. Die Methoden und #connect connect Methoden #finishConnect finishConnect werden gegenseitig synchronisiert, und ein Versuch, einen Lese- oder Schreibvorgang zu initiieren, während ein Aufruf einer dieser Methoden ausgeführt wird, wird blockiert, bis dieser Aufruf abgeschlossen ist.
In 1.4 hinzugefügt.
Java Dokumentation für java.nio.channels.SocketChannel.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| SocketChannel(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
| SocketChannel(SelectorProvider) |
Initialisiert eine neue Instanz dieser Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| IsBlocking |
Gibt an, ob sich dieser Kanal im Sperrmodus befindet. (Geerbt von AbstractSelectableChannel) |
| IsConnected |
Gibt an, ob der Socket dieses Kanals verbunden ist. |
| IsConnectionPending |
Gibt an, ob der Socket dieses Kanals weiterhin versucht, eine Verbindung herzustellen. |
| IsOpen |
Gibt true zurück, wenn dieser Kanal geöffnet ist. (Geerbt von AbstractInterruptibleChannel) |
| IsRegistered |
Gibt an, ob dieser Kanal mit einer oder mehreren Selektoren registriert ist. (Geerbt von AbstractSelectableChannel) |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| JniPeerMembers |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| LocalAddress |
Gibt die Socketadresse zurück, an die der Socket dieses Kanals gebunden ist oder |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| RemoteAddress |
Gibt die Remoteadresse zurück, mit der der Socket dieses Kanals verbunden ist oder |
| ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
| ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
Methoden
| Name | Beschreibung |
|---|---|
| Begin() |
Markiert den Anfang eines E/A-Vorgangs, der auf unbestimmte Zeit blockiert werden kann. (Geerbt von AbstractInterruptibleChannel) |
| Bind(SocketAddress) |
Hinzugefügt in 1. |
| BlockingLock() |
Ruft das Objekt ab, das für die Synchronisierung von |
| Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von Object) |
| Close() |
Schließt diesen Kanal. (Geerbt von AbstractInterruptibleChannel) |
| ConfigureBlocking(Boolean) |
Passt den Blockierungsmodus dieses Kanals an. (Geerbt von AbstractSelectableChannel) |
| Connect(SocketAddress) |
Verbindet den Socket dieses Kanals. |
| ConnectAsync(SocketAddress) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| End(Boolean) |
Markiert das Ende eines E/A-Vorgangs, der auf unbestimmte Zeit blockiert werden kann. (Geerbt von AbstractInterruptibleChannel) |
| Equals(Object) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| FinishConnect() |
Beendet den Prozess der Verbindung eines Socketkanals. |
| FinishConnectAsync() |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| ImplCloseChannel() |
Schließt diesen Kanal. (Geerbt von AbstractSelectableChannel) |
| ImplCloseSelectableChannel() |
Schließt diesen auswählbaren Kanal. (Geerbt von AbstractSelectableChannel) |
| ImplConfigureBlocking(Boolean) |
Passt den Blockierungsmodus dieses Kanals an. (Geerbt von AbstractSelectableChannel) |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| KeyFor(Selector) |
Ruft den Auswahlschlüssel dieses Kanals für den angegebenen Selektor ab. (Geerbt von AbstractSelectableChannel) |
| Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
| NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
| Open() |
Öffnet einen Socketkanal. |
| Open(SocketAddress) |
Öffnet einen Socketkanal und verbindet ihn mit einer Remoteadresse. |
| Provider() |
Gibt den Anbieter zurück, der diesen Kanal erstellt hat. (Geerbt von AbstractSelectableChannel) |
| Read(ByteBuffer) |
Liest Bytes aus diesem Socketkanal in den angegebenen Puffer. |
| Read(ByteBuffer[], Int32, Int32) |
Liest Bytes aus diesem Socketkanal in eine Teilmenge der angegebenen Puffer. |
| Read(ByteBuffer[]) |
Liest Bytes aus diesem Socketkanal und speichert sie im angegebenen Array von Puffern. |
| Register(Selector, Operations, Object) |
Registriert diesen Kanal mit der angegebenen Auswahl, wobei eine Auswahltaste zurückgegeben wird. (Geerbt von AbstractSelectableChannel) |
| Register(Selector, Operations) |
Registriert diesen Kanal mit der angegebenen Auswahl, wobei eine Auswahltaste zurückgegeben wird. (Geerbt von SelectableChannel) |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetOption(ISocketOption, Object) |
Hinzugefügt in 1. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| ShutdownInput() |
Herunterfahren der Verbindung zum Lesen, ohne den Kanal zu schließen. |
| ShutdownOutput() |
Herunterfahren der Verbindung zum Schreiben, ohne den Kanal zu schließen. |
| Socket() |
Ruft einen Socket ab, der diesem Kanal zugeordnet ist. |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| ValidOps() |
Gibt einen Vorgangssatz zurück, der die unterstützten Vorgänge dieses Kanals identifiziert. |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Write(ByteBuffer) |
Schreibt Bytes aus dem angegebenen Bytepuffer in diesen Socketkanal. |
| Write(ByteBuffer[], Int32, Int32) |
Versucht, eine Teilmenge der angegebenen Bytes aus den Puffern in diesen Socketkanal zu schreiben. |
| Write(ByteBuffer[]) |
Schreibt Bytes aus allen angegebenen Bytepuffern in diesen Socketkanal. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| IJavaPeerable.Finalized() |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. (Geerbt von JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
Ein auswählbarer Kanal für streamorientierte Verbindungssockets. |