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 zwei Arten erstellt. Ein neu erstelltes AsynchronousSocketChannel
wird erstellt, indem eine der #open open
von dieser Klasse definierten Methoden aufgerufen wird. Ein neu erstellter Kanal ist geöffnet, aber noch nicht verbunden. Ein verbundener AsynchronousSocketChannel
wird erstellt, wenn eine Verbindung mit dem Socket eines AsynchronousServerSocketChannel
hergestellt wird. Es ist nicht möglich, einen asynchronen Socketkanal für ein beliebiges, bereits vorhandenes java.net.Socket socket
zu erstellen.
Ein neu erstellter Kanal wird durch Aufrufen seiner #connect connect
Methode verbunden. Nach der Verbindung bleibt ein Kanal verbunden, bis er geschlossen wird. Ob ein Socketkanal verbunden ist, kann durch Aufrufen der Methode #getRemoteAddress getRemoteAddress
bestimmt werden. Ein Versuch, einen E/A-Vorgang für einen nicht verbundenen Kanal aufzurufen, führt dazu, dass ein NotYetConnectedException
ausgelöst wird.
Kanäle dieses Typs sind für die Verwendung durch mehrere gleichzeitige Threads sicher. Sie unterstützen das gleichzeitige Lesen und Schreiben, obwohl maximal ein Lese- und ein Schreibvorgang jederzeit ausstehend sein kann. Wenn ein Thread einen Lesevorgang initiiert, bevor ein vorheriger Lesevorgang abgeschlossen wurde, wird ein ReadPendingException
ausgelöst. Auf ähnliche Weise löst ein Versuch, einen Schreibvorgang zu initiieren, aus, bevor ein vorheriger Schreibvorgang abgeschlossen wurde WritePendingException
.
Socketoptionen werden mit der #setOption(SocketOption,Object) setOption
-Methode konfiguriert. Asynchrone Socketkanäle unterstützen die folgenden Optionen: <blockquote<>table class="striped"><Untertitel style="display:none">Socket options</Untertitel>< 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> The size of the socket send 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<>tr th scope="row"java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE
></th><td> Verbindung am Leben erhalten </td></tr><tr><th scope="row"<java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR
>/th><td Wiederverwendung> address </td></tr><tr><th scope="row"java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY
></th><td> Deaktivieren des Nagle-Algorithmus </td<>/tr></tbody<>/table></blockquote> Zusätzliche (implementierungsspezifische) Optionen können ebenfalls unterstützt werden.
<h2>Timeouts</h2>
Die #read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read
von dieser Klasse definierten Methoden und #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write
ermöglichen die Angabe eines Timeouts beim Initiieren eines Lese- oder Schreibvorgangs. Wenn das Timeout verstrichen ist, bevor ein Vorgang abgeschlossen wird, wird der Vorgang mit der Ausnahme InterruptedByTimeoutException
abgeschlossen. Ein Timeout kann den Kanal oder die zugrunde liegende Verbindung in einem inkonsistenten Zustand zurücklassen. Wenn die Implementierung nicht garantieren kann, dass Bytes nicht aus dem Kanal gelesen wurden, versetzt sie den Kanal in einen implementierungsspezifischen <em-Fehlerzustand></em>. Ein nachfolgender Versuch, einen read
Vorgang zu initiieren, führt dazu, dass eine nicht angegebene Laufzeitausnahme ausgelöst wird. Wenn bei einem Vorgang ein write
Timeout auftritt und die Implementierung nicht garantieren kann, dass Bytes nicht in den Kanal geschrieben wurden, führen weitere Versuche write
, den Kanal zu verwenden, dazu, dass eine nicht angegebene Laufzeitausnahme ausgelöst wird. Wenn ein Timeout verstrichen ist, wird der Zustand des ByteBuffer
- oder der Puffersequenz für den E/A-Vorgang nicht definiert. Puffer sollten verworfen werden, oder es muss zumindest 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 0, sodass der E/A-Vorgang kein Timeout ausführt.
In Version 1.7 hinzugefügt.
Java-Dokumentation für java.nio.channels.AsynchronousSocketChannel
.
Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der 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 |
Handle |
Das Handle zum zugrunde liegenden Android-instance. (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) |
Verbindet diesen Kanal. |
Connect(SocketAddress, Object, ICompletionHandler) |
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 diesem "gleich" 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 feststellt, dass keine Verweise mehr 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) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Liest eine Bytesequenz aus diesem Kanal in den angegebenen Puffer. |
Read(ByteBuffer, Object, ICompletionHandler) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Liest eine Bytesequenz aus diesem Kanal in eine Untersequenz 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() |
Beenden Sie die Verbindung zum Lesen, ohne den Kanal zu schließen. |
ShutdownOutput() |
Beenden Sie die 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 aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<>< (Geerbt von Object) |
Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Write(ByteBuffer) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Schreibt eine Bytesequenz aus dem angegebenen Puffer in diesen Kanal. |
Write(ByteBuffer, Object, ICompletionHandler) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Schreibt eine Bytesequenz aus einer Untersequise 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 Für Android-Runtime überprüfte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |
GetJniTypeName(IJavaPeerable) |
Ein asynchroner Kanal für streamorientierte Verbindungssockets. |