Sprache

AsynchronousSocketChannel Klasse

Definition

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

[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
Vererbung
AsynchronousSocketChannel
Attribute
Implementiert

Hinweise

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

Asynchrone Socketkanäle werden auf eine von zwei Arten erstellt. Ein neu erstelltes AsynchronousSocketChannel Element wird durch Aufrufen einer der #open open von dieser Klasse definierten Methoden erstellt. Ein neu erstellter Kanal ist geöffnet, aber noch nicht verbunden. Eine Verbindung AsynchronousSocketChannel wird erstellt, wenn eine Verbindung mit dem Socket eines AsynchronousServerSocketChannel. Es ist nicht möglich, einen asynchronen Socketkanal für einen beliebigen, bereits vorhandenen java.net.Socket socketSocketkanal zu erstellen.

Ein neu erstellter Kanal wird durch Aufrufen seiner #connect connect Methode verbunden. Sobald eine Verbindung hergestellt wurde, bleibt ein Kanal verbunden, bis er geschlossen ist. Gibt an, ob ein Socketkanal verbunden ist, kann durch aufrufende #getRemoteAddress getRemoteAddress Methode bestimmt werden. Ein Versuch, einen E/A-Vorgang bei einem nicht verbundenen Kanal aufzurufen, führt dazu, dass ein NotYetConnectedException Fehler ausgelöst wird.

Kanäle dieses Typs sind sicher für die Verwendung durch mehrere gleichzeitige Threads. Sie unterstützen gleichzeitiges Lesen und Schreiben, obwohl höchstens ein Lesevorgang und ein Schreibvorgang jederzeit ausstehen können. Wenn ein Thread einen Lesevorgang initiiert, bevor ein vorheriger Lesevorgang abgeschlossen wurde, wird ein ReadPendingException Fehler ausgelöst. Ebenso löst ein Versuch, einen Schreibvorgang zu initiieren, bevor ein vorheriger Schreibvorgang abgeschlossen wurde.WritePendingException

Socketoptionen werden mithilfe der #setOption(SocketOption,Object) setOption Methode konfiguriert. Asynchrone 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 Sockets senden buffer </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 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.

<h2>Timeouts</h2>

#read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read Mit #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write den von dieser Klasse definierten Methoden kann beim Initiieren eines Lese- oder Schreibvorgangs ein Timeout angegeben werden. Wenn das Timeout vor Abschluss eines Vorgangs verstrichen ist, wird der Vorgang mit der Ausnahme InterruptedByTimeoutExceptionabgeschlossen. Ein Timeout kann den Kanal oder die zugrunde liegende Verbindung in einem inkonsistenten Zustand verlassen. Wenn die Implementierung nicht garantieren kann, dass Bytes nicht aus dem Kanal gelesen wurden, wird der Kanal in einen implementierungsspezifischen <Em-Fehlerstatus></em> versetzt. Ein anschließender Versuch, einen read Vorgang zu initiieren, bewirkt, dass eine nicht angegebene Laufzeitausnahme ausgelöst wird. Wenn ein write Vorgang zu einem Timeout führt und die Implementierung nicht garantieren kann, dass Bytes nicht in den Kanal geschrieben wurden, führen weitere Versuche in write den Kanal, dass eine nicht angegebene Laufzeitausnahme ausgelöst wird. Wenn ein Timeout abgelaufen ist, wird der Zustand des ByteBufferE/A-Vorgangs für den E/A-Vorgang nicht definiert. Puffer sollten verworfen werden, oder es muss mindestens darauf geachtet werden, dass auf die Puffer nicht zugegriffen wird, während der Kanal geöffnet bleibt. Alle Methoden, die Timeoutparameter akzeptieren, behandeln Werte kleiner oder gleich Null, um zu bedeuten, dass der E/A-Vorgang kein Timeout ausführt.

In 1.7 hinzugefügt.

Java Dokumentation für java.nio.channels.AsynchronousSocketChannel.

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
AsynchronousSocketChannel(AsynchronousChannelProvider)

Initialisiert eine neue Instanz dieser Klasse.

AsynchronousSocketChannel(IntPtr, JniHandleOwnership)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

Eigenschaften

Name Beschreibung
Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
IsOpen

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniManagedPeerState

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
JniPeerMembers

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

LocalAddress

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(Geerbt von Object)
RemoteAddress

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

ThresholdClass

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

ThresholdType

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

Methoden

Name Beschreibung
Bind(SocketAddress)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Close()

Schließt diesen Kanal.

Connect(SocketAddress, Object, ICompletionHandler)

Verbindet diesen Kanal.

Connect(SocketAddress)

Verbindet diesen Kanal.

Construct(JniObjectReference, JniObjectReferenceOptions)

Ein asynchroner 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 asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
Equals(Object)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
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)
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 asynchronen Socketkanal.

Open(AsynchronousChannelGroup)

Öffnet einen asynchronen Socketkanal.

Provider()

Gibt den Anbieter zurück, der diesen Kanal erstellt hat.

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

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

Read(ByteBuffer, Object, ICompletionHandler)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

Read(ByteBuffer)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

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

Liest eine Abfolge von Bytes aus diesem Kanal in eine Untermenge der angegebenen Puffer.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetOption(ISocketOption, Object)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Ein asynchroner 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.

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)
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, Int64, TimeUnit, Object, ICompletionHandler)

Schreibt eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal.

Write(ByteBuffer, Object, ICompletionHandler)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

Write(ByteBuffer)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

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

Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
IJavaPeerable.Finalized()

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

(Geerbt von JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein asynchroner Kanal für streamorientierte Verbindungssockets.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: