AsynchronousSocketChannel 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 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.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
- Vererbung
- 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 socket
Socketkanal 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>
#write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write
Mit #read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read
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 InterruptedByTimeoutException
abgeschlossen. 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 verstrichen ist, wird der Zustand des ByteBuffer
E/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 vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
AsynchronousSocketChannel(AsynchronousChannelProvider) |
Initialisiert eine neue Instanz dieser Klasse. |
AsynchronousSocketChannel(IntPtr, JniHandleOwnership) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
Eigenschaften
Class |
Gibt die Laufzeitklasse dieses Werts |
Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
IsOpen |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
JniIdentityHashCode |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
JniPeerMembers |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
LocalAddress |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
PeerReference |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (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
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. |
Dispose() |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
Dispose(Boolean) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
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. |
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>() |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
UnregisterFromRuntime() |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (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
IJavaPeerable.Disposed() |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
IJavaPeerable.Finalized() |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
IJavaPeerable.JniManagedPeerState |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. (Geerbt von Object) |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
GetJniTypeName(IJavaPeerable) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |