AdbHelper

public final class AdbHelper
extends Object

java.lang.Object
   ↳ com.android.tradefed.device.server.AdbHelper


Hilfsklasse zum Verarbeiten von Anfragen und Verbindungen zu adb.

AndroidDebugBridge ist die öffentliche API für die Verbindung zu adb, während AdbHelper die Low-Level-Aufgaben übernimmt.

Dabei wird derzeit Spin-Wait-I/O ohne Blockierung verwendet. Ein Selektor wäre effizienter, scheint aber für das, was wir hier tun, übertrieben.

Zusammenfassung

Verschachtelte Klassen

class AdbHelper.AdbResponse

Antwort von ADB. 

Konstanten

String HOST_TRANSPORT

Felder

public static final Charset DEFAULT_CHARSET

Öffentliche Methoden

static void createForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec, String remotePortSpec)

Erstellt eine Portweiterleitung zwischen einem lokalen und einem Remote-Port.

static AdbCommandRejectedException createHiddenException(String message, boolean errorDuringDeviceSelection)
static AdbCommandRejectedException createHiddenException(String message)
static byte[] createJdwpForwardRequest(int pid)

Erstellt eine Portweiterleitungsanfrage an einen jdwp-Prozess.

static SocketChannel createPassThroughConnection(InetSocketAddress adbSockAddr, String deviceSerialNumber, int pid)

Erstellt und verbindet einen neuen Pass-Through-Socket vom Host zu einem Port auf dem Gerät.

static void createReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec, String localPortSpec)

Erstellt eine Portumkehrung zwischen einem Remote- und einem lokalen Port.

static void executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)

Führt einen Shell-Befehl auf dem Gerät aus und ruft die Ausgabe ab.

static void executeRemoteCommand(InetSocketAddress adbSockAddr, AdbHelper.AdbService adbService, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)

Führt einen Remote-Befehl auf dem Gerät aus und ruft die Ausgabe ab.

static void executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)

Führt einen Shell-Befehl auf dem Gerät aus und ruft die Ausgabe ab.

static byte[] formAdbRequest(String payloadString)

Erstellt einen ASCII-String, dem vier Hexadezimalziffern vorangestellt sind.

static String getFeatures(IDevice device)

Fragt eine Reihe unterstützter Funktionen vom Gerät ab.

static RawImage getFrameBuffer(InetSocketAddress adbSockAddr, IDevice device, long timeout, TimeUnit unit)

Ruft den Framebuffer vom Gerät mit dem angegebenen Zeitlimit ab.

static String getHostFeatures()

Fragt eine Reihe unterstützter Funktionen vom ADB-Host ab.

static SocketChannel open(InetSocketAddress adbSockAddr, IDevice device, int devicePort)

Erstellen Sie eine neue Pass-Through-Socket und stellen Sie eine Verbindung vom Host zu einem Port auf dem Gerät her.

static SocketChannel rawAdbService(InetSocketAddress socketAddress, IDevice device, String command, AdbHelper.AdbService service)

Rufen Sie den Dienst auf einem Remote-Gerät auf.

static SocketChannel rawExec(InetSocketAddress socketAddress, IDevice device, String executable, String[] parameters)

Rufen Sie den Dienst „host:exec“ auf einem Remote-Gerät auf.

static AdbHelper.AdbResponse readAdbResponse(SocketChannel chan, boolean readDiagString)

Liest die Antwort von ADB nach einem Befehl.

static void reboot(String into, InetSocketAddress adbSockAddr, IDevice device)

Starten Sie das Gerät neu.

static void removeForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec)

Entfernen Sie eine Portweiterleitung zwischen einem lokalen und einem Remote-Port.

static void removeReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec)

Entfernen Sie eine Portumkehrung zwischen einem Remote- und einem lokalen Port.

static void root(InetSocketAddress adbSockAddr, IDevice device)

Fordern Sie den ADB-Daemon auf, auf dem Gerät Root zu werden.

static void setDevice(SocketChannel adbChan, IDevice device)

Wenn Sie ein IDevice haben, rufen Sie die Seriennummer ab und weisen Sie adb an, mit diesem Gerät zu kommunizieren.

static void setDevice(SocketChannel adbChan, String deviceSerialNumber)

weist adb an, mit einem bestimmten Gerät zu kommunizieren

static void write(SocketChannel chan, byte[] data, int length, int timeout)

Schreibt, bis alle Daten in „data“ geschrieben wurden, die optionale Länge erreicht ist, das Zeitlimit abläuft oder die Verbindung fehlschlägt.

static void write(SocketChannel chan, byte[] data)

Schreibt, bis alle Daten in „data“ geschrieben wurden oder die Verbindung fehlschlägt oder das Zeitlimit überschritten wird.

Konstanten

HOST_TRANSPORT

public static final String HOST_TRANSPORT

Konstanter Wert: "host:transport:"

Felder

DEFAULT_CHARSET

public static final Charset DEFAULT_CHARSET

Öffentliche Methoden

createForward

public static void createForward (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String localPortSpec, 
                String remotePortSpec)

Erstellt eine Portweiterleitung zwischen einem lokalen und einem Remote-Port.

Parameter
adbSockAddr InetSocketAddress: Die Socket-Adresse, zu der eine Verbindung zu ADB hergestellt werden soll

device IDevice: das Gerät, auf dem die Portweiterleitung erfolgen soll

localPortSpec String: Angabe des lokalen Ports, der weitergeleitet werden soll, im Format tcp:

remotePortSpec String: Angabe des Remote-Ports, an den weitergeleitet werden soll, einer der folgenden Optionen: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (nur remote)

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem I/O-Fehler bei der Verbindung.

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message, 
                boolean errorDuringDeviceSelection)

Parameter
message String

errorDuringDeviceSelection boolean

Returns
AdbCommandRejectedException

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message)

Parameter
message String

Returns
AdbCommandRejectedException

createJdwpForwardRequest

public static byte[] createJdwpForwardRequest (int pid)

Erstellt eine Portweiterleitungsanfrage an einen jdwp-Prozess. Dadurch wird ein Array mit „####jwdp:{pid}“ zurückgegeben.

Parameter
pid int: Die PID des JDWP-Prozesses auf dem Gerät.

Returns
byte[]

createPassThroughConnection

public static SocketChannel createPassThroughConnection (InetSocketAddress adbSockAddr, 
                String deviceSerialNumber, 
                int pid)

Erstellt und verbindet einen neuen Pass-Through-Socket vom Host zu einem Port auf dem Gerät.

Parameter
deviceSerialNumber String: die Seriennummer des Geräts, zu dem eine Verbindung hergestellt werden soll. Kann null oder leer sein. In diesem Fall wird die Verbindung zum ersten verfügbaren Gerät hergestellt.

pid int: Die Prozess-PID, zu der eine Verbindung hergestellt werden soll.

Returns
SocketChannel

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem E/A-Fehler bei der Verbindung.

createReverse

public static void createReverse (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String remotePortSpec, 
                String localPortSpec)

Erstellt eine Portumkehrung zwischen einem Remote- und einem lokalen Port.

Parameter
adbSockAddr InetSocketAddress: die Socket-Adresse, mit der eine Verbindung zu adb hergestellt werden soll

device IDevice: das Gerät, auf dem die Portumkehrung durchgeführt werden soll

remotePortSpec String: Angabe des Remote-Ports, zu dem die Verbindung umgekehrt werden soll, einer der folgenden Optionen: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (nur remote)

localPortSpec String: Angabe des lokalen Ports im Format „tcp:

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem E/A-Fehler bei der Verbindung.

executeRemoteCommand

public static void executeRemoteCommand (InetSocketAddress adbSockAddr, 
                String command, 
                IDevice device, 
                IShellOutputReceiver rcvr, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits)

Führt einen Shell-Befehl auf dem Gerät aus und ruft die Ausgabe ab. Die Ausgabe wird an rcvr übergeben, sobald sie eintrifft.

Parameter
adbSockAddr InetSocketAddress: die ERROR(/InetSocketAddress) für adb.

command String: Der auszuführende Shell-Befehl

device IDevice: die IDevice, auf der der Befehl ausgeführt werden soll.

rcvr IShellOutputReceiver: die IShellOutputReceiver, die die Ausgabe des Shellbefehls empfängt

maxTimeToOutputResponse long: Maximale Zeit zwischen der Befehlsausgabe. Wenn zwischen den Befehlsausgaben mehr Zeit vergeht, wird von der Methode ShellCommandUnresponsiveException ausgegeben. Ein Wert von 0 bedeutet, dass die Methode unbegrenzt auf die Befehlsausgabe wartet und nie eine Ausnahme auslöst.

maxTimeUnits TimeUnit: Einheiten für maxTimeToOutputResponse-Werte ungleich null.

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung beim Senden des Befehls.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
ShellCommandUnresponsiveException wenn der Shell-Befehl über einen Zeitraum von mehr als maxTimeToOutputResponse keine Ausgabe sendet.
bei einem E/A-Fehler bei der Verbindung.

Weitere Informationen

executeRemoteCommand

public static void executeRemoteCommand (InetSocketAddress adbSockAddr, 
                AdbHelper.AdbService adbService, 
                String command, 
                IDevice device, 
                IShellOutputReceiver rcvr, 
                long maxTimeout, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits, 
                InputStream is)

Führt einen Remote-Befehl auf dem Gerät aus und ruft die Ausgabe ab. Die Ausgabe wird an rcvr übergeben, sobald sie eintrifft. Der Befehl wird vom Remote-Dienst ausgeführt, der durch den Parameter „adbService“ angegeben wird.

Parameter
adbSockAddr InetSocketAddress: die ERROR(/InetSocketAddress) für adb.

adbService AdbHelper.AdbService: Der AdbHelper.AdbService, der zum Ausführen des Befehls verwendet werden soll.

command String: Der auszuführende Shell-Befehl

device IDevice: die IDevice, auf der der Befehl ausgeführt werden soll.

rcvr IShellOutputReceiver: die IShellOutputReceiver, die die Ausgabe des Shellbefehls empfängt

maxTimeout long: Maximales Zeitlimit für die Ausführung des gesamten Befehls. Ein Wert von 0 bedeutet, dass kein Zeitlimit festgelegt ist.

maxTimeToOutputResponse long: Maximale Zeit zwischen der Befehlsausgabe. Wenn zwischen den Befehlsausgaben mehr Zeit vergeht, wird von der Methode ShellCommandUnresponsiveException ausgegeben. Ein Wert von 0 bedeutet, dass die Methode unbegrenzt auf die Befehlsausgabe wartet und nie eine Ausnahme auslöst.

maxTimeUnits TimeUnit: Einheiten für maxTimeout- und maxTimeToOutputResponse-Werte ungleich null.

is InputStream: ein optionaler ERROR(/InputStream), der nach dem Aufrufen des Befehls und vor dem Abrufen der Antwort gestreamt werden soll.

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung beim Senden des Befehls.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
ShellCommandUnresponsiveException wenn der Shell-Befehl über einen Zeitraum von mehr als maxTimeToOutputResponse keine Ausgabe sendet.
bei einem E/A-Fehler bei der Verbindung.

Weitere Informationen

executeRemoteCommand

public static void executeRemoteCommand (InetSocketAddress adbSockAddr, 
                String command, 
                IDevice device, 
                IShellOutputReceiver rcvr, 
                long maxTimeout, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits)

Führt einen Shell-Befehl auf dem Gerät aus und ruft die Ausgabe ab. Die Ausgabe wird an rcvr übergeben, sobald sie eintrifft.

Parameter
adbSockAddr InetSocketAddress: die ERROR(/InetSocketAddress) für adb.

command String: Der auszuführende Shell-Befehl

device IDevice: die IDevice, auf der der Befehl ausgeführt werden soll.

rcvr IShellOutputReceiver: die IShellOutputReceiver, die die Ausgabe des Shellbefehls empfängt

maxTimeout long: Die maximale Zeit, die der Befehl zum Zurückgeben benötigt. Ein Wert von 0 bedeutet, dass kein maximales Zeitlimit angewendet wird.

maxTimeToOutputResponse long: Maximale Zeit zwischen der Befehlsausgabe. Wenn zwischen den Befehlsausgaben mehr Zeit vergeht, wird von der Methode ShellCommandUnresponsiveException ausgegeben. Ein Wert von 0 bedeutet, dass die Methode unbegrenzt auf die Befehlsausgabe wartet und nie eine Ausnahme auslöst.

maxTimeUnits TimeUnit: Einheiten für maxTimeout- und maxTimeToOutputResponse-Werte ungleich null.

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung beim Senden des Befehls.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
ShellCommandUnresponsiveException wenn der Shell-Befehl über einen Zeitraum von mehr als maxTimeToOutputResponse keine Ausgabe sendet.
bei einem E/A-Fehler bei der Verbindung.

Weitere Informationen

formAdbRequest

public static byte[] formAdbRequest (String payloadString)

Erstellt einen ASCII-String, dem vier Hexadezimalziffern vorangestellt sind. Die Eröffnung „####“ ist die Länge des restlichen Strings, codiert als ASCII-Hexadezimalzahl (Groß- und Kleinschreibung spielt keine Rolle).

Parameter
payloadString String

Returns
byte[]

getFeatures

public static String getFeatures (IDevice device)

Fragt eine Reihe unterstützter Funktionen vom Gerät ab.

Parameter
device IDevice: das Gerät, auf dem die Portweiterleitung erfolgen soll

Returns
String

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem I/O-Fehler bei der Verbindung.

getFrameBuffer

public static RawImage getFrameBuffer (InetSocketAddress adbSockAddr, 
                IDevice device, 
                long timeout, 
                TimeUnit unit)

Ruft den Framebuffer vom Gerät mit dem angegebenen Zeitlimit ab. Ein Zeitlimit von 0 bedeutet, dass unbegrenzt gewartet wird.

Parameter
adbSockAddr InetSocketAddress

device IDevice

timeout long

unit TimeUnit

Returns
RawImage

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem E/A-Fehler bei der Verbindung.

getHostFeatures

public static String getHostFeatures ()

Fragt eine Reihe unterstützter Funktionen vom ADB-Host ab.

Returns
String

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem I/O-Fehler bei der Verbindung.

Öffnen

public static SocketChannel open (InetSocketAddress adbSockAddr, 
                IDevice device, 
                int devicePort)

Erstellen Sie eine neue Pass-Through-Socket und stellen Sie eine Verbindung vom Host zu einem Port auf dem Gerät her.

Parameter
device IDevice: das Gerät, mit dem eine Verbindung hergestellt werden soll. Kann null sein. In diesem Fall wird die Verbindung zum ersten verfügbaren Gerät hergestellt.

devicePort int: der Port, den wir öffnen

Returns
SocketChannel

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
bei einem E/A-Fehler bei der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird

rawAdbService

public static SocketChannel rawAdbService (InetSocketAddress socketAddress, 
                IDevice device, 
                String command, 
                AdbHelper.AdbService service)

Rufen Sie den Dienst auf einem Remote-Gerät auf. Gibt einen Socket-Channel zurück, der mit dem ausführenden Prozess verbunden ist.

ddlmib gibt das Eigentum am zurückgegebenen SocketChannel auf und muss nach der Verwendung explizit geschlossen werden.

Parameter
device IDevice: das Gerät, mit dem eine Verbindung hergestellt werden soll. Kann null sein. In diesem Fall wird die Verbindung zum ersten verfügbaren Gerät hergestellt.

command String: der auszuführende Befehl

service AdbHelper.AdbService: Der AdbHelper.AdbService, der zum Ausführen des Befehls verwendet werden soll.

Returns
SocketChannel

Ausgabe
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

rawExec

public static SocketChannel rawExec (InetSocketAddress socketAddress, 
                IDevice device, 
                String executable, 
                String[] parameters)

Rufen Sie den Dienst „host:exec“ auf einem Remote-Gerät auf. Gibt einen Socket-Channel zurück, der mit dem ausgeführten Prozess verbunden ist. Der Exec-Dienst unterscheidet nicht zwischen stdout und stderr. Was vom Socket gelesen wird, kann also aus beiden Ausgaben stammen und verschachtelt sein.

ddlmib gibt das Eigentum am zurückgegebenen SocketChannel auf und muss nach der Verwendung explizit geschlossen werden.

Parameter
device IDevice: das Gerät, mit dem eine Verbindung hergestellt werden soll. Kann null sein. In diesem Fall wird die Verbindung zum ersten verfügbaren Gerät hergestellt.

executable String: der absolute Pfad der auszuführenden Datei

parameters String: die Parameter, die beim Ausführen der ausführbaren Datei übergeben werden

Returns
SocketChannel

Ausgabe
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

readAdbResponse

public static AdbHelper.AdbResponse readAdbResponse (SocketChannel chan, 
                boolean readDiagString)

Liest die Antwort von ADB nach einem Befehl.

Parameter
chan SocketChannel: Der Socket-Kanal, der mit adb verbunden ist.

readDiagString boolean: Wenn „true“, erwarten wir, dass auf eine OKAY-Antwort ein Diagnosestring folgt. Andernfalls erwarten wir, dass der Diagnosestring nur auf einen FEHLER folgt.

Returns
AdbHelper.AdbResponse

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
bei einem E/A-Fehler bei der Verbindung.

neu starten

public static void reboot (String into, 
                InetSocketAddress adbSockAddr, 
                IDevice device)

Starten Sie das Gerät neu.

Parameter
into String: Das Ziel des Neustarts (Wiederherstellung, Bootloader). Oder „null“, um das Gerät einfach neu zu starten.

adbSockAddr InetSocketAddress

device IDevice

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem I/O-Fehler bei der Verbindung.

removeForward

public static void removeForward (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String localPortSpec)

Entfernen Sie eine Portweiterleitung zwischen einem lokalen und einem Remote-Port.

Parameter
adbSockAddr InetSocketAddress: die Socket-Adresse, mit der eine Verbindung zu adb hergestellt werden soll

device IDevice: das Gerät, auf dem die Portweiterleitung entfernt werden soll

localPortSpec String: Angabe des weitergeleiteten lokalen Ports im Format tcp:

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem I/O-Fehler bei der Verbindung.

removeReverse

public static void removeReverse (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String remotePortSpec)

Entfernen Sie eine Portumkehrung zwischen einem Remote- und einem lokalen Port.

Parameter
adbSockAddr InetSocketAddress: die Socket-Adresse, mit der eine Verbindung zu adb hergestellt werden soll

device IDevice: das Gerät, auf dem die Portumkehrung entfernt werden soll

remotePortSpec String: Spezifikation des Remote-Ports, umgekehrt zu einem der folgenden: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (nur remote)

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem E/A-Fehler bei der Verbindung.

root

public static void root (InetSocketAddress adbSockAddr, 
                IDevice device)

Fordern Sie den ADB-Daemon auf, auf dem Gerät Root zu werden. Dies kann im Hintergrund fehlschlagen und nur bei Entwickler-Builds funktionieren. Weitere Informationen finden Sie unter „adb root“. Wenn Sie wissen möchten, ob der Vorgang erfolgreich war, können Sie das Ergebnis von „executeRemoteCommand“ für „echo \$USER_ID“ prüfen. Wenn es 0 ist, wird „adbd“ als Root ausgeführt.

Parameter
adbSockAddr InetSocketAddress

device IDevice

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem E/A-Fehler bei der Verbindung.

setDevice

public static void setDevice (SocketChannel adbChan, 
                IDevice device)

Wenn Sie ein IDevice haben, rufen Sie die Seriennummer ab und weisen Sie adb an, mit diesem Gerät zu kommunizieren.

Parameter
adbChan SocketChannel: Die Socketverbindung zu adb.

device IDevice: das Gerät, mit dem Sie sprechen möchten.

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem E/A-Fehler bei der Verbindung.

setDevice

public static void setDevice (SocketChannel adbChan, 
                String deviceSerialNumber)

weist adb an, mit einem bestimmten Gerät zu kommunizieren

Parameter
adbChan SocketChannel: die Socketverbindung zu ADB

deviceSerialNumber String: Die Seriennummer des Geräts, mit dem kommuniziert werden soll. Wenn der Wert null ist, wird das von ADB ausgewählte Standardgerät verwendet.

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
AdbCommandRejectedException Wenn der Befehl von ADB abgelehnt wird
bei einem I/O-Fehler bei der Verbindung.

für mich

public static void write (SocketChannel chan, 
                byte[] data, 
                int length, 
                int timeout)

Schreibt, bis alle Daten in „data“ geschrieben wurden, die optionale Länge erreicht ist, das Zeitlimit abläuft oder die Verbindung fehlschlägt. Gibt „true“ zurück, wenn alle Daten geschrieben wurden.

Parameter
chan SocketChannel: Der geöffnete Socket, in den geschrieben werden soll.

data byte: Der zu sendende Puffer.

length int: Die Länge, die geschrieben werden soll, oder -1, um den gesamten Puffer zu senden.

timeout int: Der Zeitüberschreitungswert. Ein Zeitlimit von null bedeutet „unbegrenzt warten“.

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
bei einem E/A-Fehler bei der Verbindung.

für mich

public static void write (SocketChannel chan, 
                byte[] data)

Schreibt, bis alle Daten in „data“ geschrieben wurden oder die Verbindung fehlschlägt oder das Zeitlimit überschritten wird.

Dabei wird der Standard-Zeitüberschreitungswert verwendet.

Parameter
chan SocketChannel: Der geöffnete Socket, in den geschrieben werden soll.

data byte: Der zu sendende Puffer.

Ausgabe
TimeoutException bei Zeitüberschreitung der Verbindung.
bei einem E/A-Fehler bei der Verbindung.