AdbHelper

public final class AdbHelper
extends Object

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


מחלקת עזר לטיפול בבקשות ובחיבורים ל-adb.

AndroidDebugBridge הוא ה-API הציבורי לחיבור ל-adb, ואילו AdbHelper מבצע את הפעולות ברמה הנמוכה.

בשלב הזה, המערכת משתמשת ב-I/O לא חוסם של המתנה פעילה. שימוש בסלקטור יהיה יעיל יותר, אבל נראה שהוא מוגזם בהקשר של מה שאנחנו עושים כאן.

סיכום

כיתות במבנה היררכי

class AdbHelper.AdbResponse

תגובה מ-ADB. 

ערכים קבועים

String HOST_TRANSPORT

שדות

public static final Charset DEFAULT_CHARSET

‫methods ציבוריים

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

יוצרת העברת יציאה בין יציאה מקומית ליציאה מרוחקת.

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

יוצר בקשת העברה ליציאה אחרת לתהליך jdwp.

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

יוצר ומחבר שקע חדש של העברת נתונים מהמארח ליציאה במכשיר.

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

יוצרת היפוך יציאות בין יציאה מרוחקת ליציאה מקומית.

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

מריץ פקודת מעטפת במכשיר ומאחזר את הפלט.

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

מריץ פקודה מרחוק במכשיר ומאחזר את הפלט.

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

מריץ פקודת מעטפת במכשיר ומאחזר את הפלט.

static byte[] formAdbRequest(String payloadString)

יוצרים מחרוזת ASCII שלפניה ארבע ספרות הקסדצימליות.

static String getFeatures(IDevice device)

שליחת שאילתה לגבי קבוצה של תכונות נתמכות מהמכשיר.

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

שליפת מאגר המסגרות מהמכשיר עם פסק הזמן שצוין.

static String getHostFeatures()

שליחת שאילתה לגבי קבוצה של תכונות נתמכות ממארח ה-ADB.

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

יוצרים ומקשרים שקע חדש למעבר נתונים, מהמארח ליציאה במכשיר.

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

להפעיל את השירות במכשיר מרוחק.

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

הפעלת שירות host:exec במכשיר מרוחק.

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

קריאת התגובה מ-ADB אחרי פקודה.

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

מפעילים מחדש את המכשיר.

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

הסרת העברה ליציאה אחרת בין יציאה מקומית ליציאה מרוחקת.

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

הסרת היפוך של יציאה בין יציאה מרוחקת ליציאה מקומית.

static void root(InetSocketAddress adbSockAddr, IDevice device)

מבקשים מהדמון של adb להפוך ל-root במכשיר.

static void setDevice(SocketChannel adbChan, IDevice device)

בהינתן IDevice, מאתרים את המספר הסידורי ומגדירים את adb לתקשר עם המכשיר הזה.

static void setDevice(SocketChannel adbChan, String deviceSerialNumber)

הפקודה אומרת ל-adb לתקשר עם מכשיר ספציפי

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

הכתיבה תימשך עד שכל הנתונים בפרמטר data ייכתבו, עד שיגיעו לאורך האופציונלי, עד שהזמן הקצוב יסתיים או עד שהחיבור ייכשל.

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

הכתיבה תתבצע עד שכל הנתונים ב-data ייכתבו, או עד שהחיבור ייכשל או יפוג.

ערכים קבועים

HOST_TRANSPORT

public static final String HOST_TRANSPORT

ערך קבוע: "host:transport:"

שדות

DEFAULT_CHARSET

public static final Charset DEFAULT_CHARSET

‫methods ציבוריים

createForward

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

יוצרת העברת יציאה בין יציאה מקומית ליציאה מרוחקת.

פרמטרים
adbSockAddr InetSocketAddress: כתובת הסוקט להתחברות ל-adb

device IDevice: המכשיר שבו רוצים להגדיר העברה ליציאה אחרת

localPortSpec String: מפרט של היציאה המקומית להעברה, צריך להיות בפורמט tcp:

remotePortSpec String: ציון של היציאה המרוחקת להעברה, אחת מהאפשרויות הבאות: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (מרוחק בלבד)

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message, 
                boolean errorDuringDeviceSelection)

פרמטרים
message String

errorDuringDeviceSelection boolean

החזרות
AdbCommandRejectedException

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message)

פרמטרים
message String

החזרות
AdbCommandRejectedException

createJdwpForwardRequest

public static byte[] createJdwpForwardRequest (int pid)

יוצר בקשת העברה ליציאה אחרת לתהליך jdwp. הפונקציה מחזירה מערך שמכיל את המחרוזת '####jwdp:{pid}'.

פרמטרים
pid int: מזהה התהליך (PID) של jdwp במכשיר.

החזרות
byte[]

createPassThroughConnection

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

יוצר ומחבר שקע חדש של העברת נתונים מהמארח ליציאה במכשיר.

פרמטרים
deviceSerialNumber String: המספר הסידורי של המכשיר שאליו רוצים להתחבר. יכול להיות null או ריק, ובמקרה כזה החיבור יהיה למכשיר הראשון שזמין.

pid int: מזהה התהליך שאליו רוצים להתחבר.

החזרות
SocketChannel

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

createReverse

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

יוצרת היפוך יציאות בין יציאה מרוחקת ליציאה מקומית.

פרמטרים
adbSockAddr InetSocketAddress: כתובת הסוקט להתחברות ל-adb

device IDevice: המכשיר שבו רוצים לבצע את היפוך הניוד

remotePortSpec String: ציון של היציאה המרוחקת שאליה מתבצעת ההפניה, אחת מהאפשרויות הבאות: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (remote only)

localPortSpec String: מפרט של היציאה המקומית, צריך להיות בפורמט tcp:

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

executeRemoteCommand

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

מריץ פקודת מעטפת במכשיר ומאחזר את הפלט. הפלט מועבר אל rcvr כשהוא מגיע.

פרמטרים
adbSockAddr InetSocketAddress: ה-ERROR(/InetSocketAddress) ל-adb.

command String: פקודת המעטפת להרצה

device IDevice: ה-IDevice שבו תופעל הפקודה.

rcvr IShellOutputReceiver: ה-IShellOutputReceiver שיקבל את הפלט של פקודת ה-Shell

maxTimeToOutputResponse long: הזמן המקסימלי בין פלט הפקודה. אם חולף יותר זמן בין פלט הפקודה, השיטה תחזיר ShellCommandUnresponsiveException. הערך 0 מציין שהשיטה תחכה לנצח לפלט של הפקודה ולא תזרוק שגיאה.

maxTimeUnits TimeUnit: יחידות לערכים של maxTimeToOutputResponse שאינם אפס.

זריקות
TimeoutException במקרה של פסק זמן בחיבור כששולחים את הפקודה.
AdbCommandRejectedException אם adb דוחה את הפקודה
ShellCommandUnresponsiveException במקרה שפקודת ה-Shell לא שולחת פלט במשך תקופה ארוכה מ-maxTimeToOutputResponse.
במקרה של שגיאת קלט/פלט בחיבור.

מידע נוסף:

executeRemoteCommand

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

מריץ פקודה מרחוק במכשיר ומאחזר את הפלט. הפלט מועבר אל rcvr כשהוא מגיע. הפקודה מופעלת על ידי השירות המרוחק שמזוהה על ידי הפרמטר adbService.

פרמטרים
adbSockAddr InetSocketAddress: ה-ERROR(/InetSocketAddress) ל-adb.

adbService AdbHelper.AdbService: ה-AdbHelper.AdbService שבו משתמשים כדי להריץ את הפקודה.

command String: פקודת המעטפת להרצה

device IDevice: ה-IDevice שבו תופעל הפקודה.

rcvr IShellOutputReceiver: ה-IShellOutputReceiver שיקבל את הפלט של פקודת ה-Shell

maxTimeout long: הזמן המקסימלי להמתנה עד להשלמת הפקודה. הערך 0 מציין שאין זמן קצוב לתפוגה.

maxTimeToOutputResponse long: הזמן המקסימלי בין פלט הפקודה. אם חולף יותר זמן בין פלט הפקודה, השיטה תחזיר ShellCommandUnresponsiveException. הערך 0 מציין שהשיטה תחכה לנצח לפלט של הפקודה ולא תזרוק שגיאה.

maxTimeUnits TimeUnit: יחידות לערכים שונים מאפס של maxTimeout ו-maxTimeToOutputResponse.

is InputStream: ERROR(/InputStream) אופציונלי שיוזרם אחרי הפעלת הפקודה ולפני אחזור התגובה.

זריקות
TimeoutException במקרה של פסק זמן בחיבור כששולחים את הפקודה.
AdbCommandRejectedException אם adb דוחה את הפקודה
ShellCommandUnresponsiveException במקרה שפקודת ה-Shell לא שולחת פלט במשך תקופה ארוכה מ-maxTimeToOutputResponse.
במקרה של שגיאת קלט/פלט בחיבור.

מידע נוסף:

executeRemoteCommand

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

מריץ פקודת מעטפת במכשיר ומאחזר את הפלט. הפלט מועבר אל rcvr כשהוא מגיע.

פרמטרים
adbSockAddr InetSocketAddress: ה-ERROR(/InetSocketAddress) ל-adb.

command String: פקודת המעטפת להרצה

device IDevice: ה-IDevice שבו תופעל הפקודה.

rcvr IShellOutputReceiver: ה-IShellOutputReceiver שיקבל את הפלט של פקודת ה-Shell

maxTimeout long: הזמן המקסימלי להחזרת הפקודה. הערך 0 מציין שלא יוגדר זמן קצוב מקסימלי לתפוגה.

maxTimeToOutputResponse long: הזמן המקסימלי בין פלט הפקודה. אם חולף יותר זמן בין פלט הפקודה, השיטה תחזיר ShellCommandUnresponsiveException. הערך 0 מציין שהשיטה תחכה לנצח לפלט של הפקודה ולא תזרוק שגיאה.

maxTimeUnits TimeUnit: יחידות לערכים שונים מאפס של maxTimeout ו-maxTimeToOutputResponse.

זריקות
TimeoutException במקרה של פסק זמן בחיבור כששולחים את הפקודה.
AdbCommandRejectedException אם adb דוחה את הפקודה
ShellCommandUnresponsiveException במקרה שפקודת ה-Shell לא שולחת פלט במשך תקופה ארוכה מ-maxTimeToOutputResponse.
במקרה של שגיאת קלט/פלט בחיבור.

מידע נוסף:

formAdbRequest

public static byte[] formAdbRequest (String payloadString)

יוצרים מחרוזת ASCII שלפניה ארבע ספרות הקסדצימליות. החלק הפותח '####' הוא האורך של שאר המחרוזת, מוצפן כ-ASCII hex (הרישיות לא משנה).

פרמטרים
payloadString String

החזרות
byte[]

getFeatures

public static String getFeatures (IDevice device)

שליחת שאילתה לגבי קבוצה של תכונות נתמכות מהמכשיר.

פרמטרים
device IDevice: המכשיר שבו רוצים להגדיר העברה ליציאה אחרת

החזרות
String

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

getFrameBuffer

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

שליפת מאגר המסגרות מהמכשיר עם פסק הזמן שצוין. ערך הזמן הקצוב לתפוגה 0 מציין שהמערכת תמתין לנצח.

פרמטרים
adbSockAddr InetSocketAddress

device IDevice

timeout long

unit TimeUnit

החזרות
RawImage

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

getHostFeatures

public static String getHostFeatures ()

שליחת שאילתה לגבי קבוצה של תכונות נתמכות ממארח ה-ADB.

החזרות
String

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

פתיחה

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

יוצרים ומקשרים שקע חדש למעבר נתונים, מהמארח ליציאה במכשיר.

פרמטרים
device IDevice: המכשיר שאליו רוצים להתחבר. יכול להיות null, ובמקרה כזה החיבור יהיה למכשיר הראשון שזמין.

devicePort int: היציאה שאנחנו פותחים

החזרות
SocketChannel

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור מסתיים.
במקרה של שגיאת קלט/פלט בחיבור.
AdbCommandRejectedException אם adb דוחה את הפקודה

rawAdbService

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

להפעיל את השירות במכשיר מרוחק. מחזירה ערוץ socket שמחובר לתהליך הפעיל.

‫ddlmib מוותר על הבעלות על SocketChannel שהוחזר, וחובה לסגור אותו באופן מפורש אחרי השימוש.

פרמטרים
device IDevice: המכשיר שאליו רוצים להתחבר. יכול להיות null, ובמקרה כזה החיבור יהיה למכשיר הראשון שזמין.

command String: הפקודה להרצה

service AdbHelper.AdbService: ה-AdbHelper.AdbService שבו משתמשים כדי להריץ את הפקודה.

החזרות
SocketChannel

זריקות
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

rawExec

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

הפעלת שירות host:exec במכשיר מרוחק. מחזירה ערוץ socket שמחובר לתהליך הפעיל. הערה: שירות exec לא מבחין בין stdout לבין stderr, ולכן כל מה שנקרא מהסוקט יכול להגיע מכל אחד מהפלט ולעבור שזירה.

‫ddlmib מוותר על הבעלות על SocketChannel שהוחזר, וחובה לסגור אותו באופן מפורש אחרי השימוש.

פרמטרים
device IDevice: המכשיר שאליו רוצים להתחבר. יכול להיות null, ובמקרה כזה החיבור יהיה למכשיר הראשון שזמין.

executable String: הנתיב המוחלט של קובץ ההפעלה להרצה

parameters String: הפרמטרים שמתקבלים כשמפעילים את קובץ ההפעלה

החזרות
SocketChannel

זריקות
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

readAdbResponse

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

קריאת התגובה מ-ADB אחרי הפקודה.

פרמטרים
chan SocketChannel: ערוץ ה-socket שמחובר ל-adb.

readDiagString boolean: אם הערך הוא true, אנחנו מצפים לתשובה OKAY ואחריה מחרוזת אבחון. אחרת, אנחנו מצפים שמחרוזת האבחון תופיע רק אחרי הערך FAIL.

החזרות
AdbHelper.AdbResponse

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור מסתיים.
במקרה של שגיאת קלט/פלט בחיבור.

הפעלה מחדש

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

מפעילים מחדש את המכשיר.

פרמטרים
into String: מה להפעיל מחדש (שחזור, טוען אתחול). או null כדי להפעיל מחדש.

adbSockAddr InetSocketAddress

device IDevice

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

removeForward

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

הסרת העברה ליציאה אחרת בין יציאה מקומית ליציאה מרוחקת.

פרמטרים
adbSockAddr InetSocketAddress: כתובת הסוקט להתחברות ל-adb

device IDevice: המכשיר שבו רוצים להסיר את העברת היציאה

localPortSpec String: מפרט של היציאה המקומית שהועברה, צריך להיות בפורמט tcp:

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

removeReverse

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

הסרת היפוך יציאה בין יציאה מרוחקת ליציאה מקומית.

פרמטרים
adbSockAddr InetSocketAddress: כתובת הסוקט להתחברות ל-adb

device IDevice: המכשיר שבו רוצים להסיר את היפוך היציאה

remotePortSpec String: הגדרה של היציאה המרוחקת שאליה מתבצעת ההפניה, אחת מהאפשרויות הבאות: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (רק מרוחק)

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

שורש

public static void root (InetSocketAddress adbSockAddr, 
                IDevice device)

מבקשים מהדמון של adb להפוך ל-root במכשיר. יכול להיות שהפעולה תיכשל בלי הודעה, והיא יכולה להצליח רק בגרסאות למפתחים. מידע נוסף זמין במאמר בנושא adb root. אם אתם רוצים לדעת אם הפעולה הצליחה, אתם יכולים לבדוק את התוצאה של executeRemoteCommand בפקודה echo \$USER_ID. אם התוצאה היא 0,‏ adbd פועל כ-root.

פרמטרים
adbSockAddr InetSocketAddress

device IDevice

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

setDevice

public static void setDevice (SocketChannel adbChan, 
                IDevice device)

בהינתן IDevice, צריך לאחזר את המספר הסידורי ולומר ל-adb לתקשר עם המכשיר הזה.

פרמטרים
adbChan SocketChannel: חיבור הסוקט ל-adb.

device IDevice: המכשיר שאליו מדברים.

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

setDevice

public static void setDevice (SocketChannel adbChan, 
                String deviceSerialNumber)

הפקודה אומרת ל-adb לתקשר עם מכשיר ספציפי

פרמטרים
adbChan SocketChannel: חיבור שקע ל-adb

deviceSerialNumber String: המספר הסידורי של המכשיר שאליו רוצים לשלוח את הפקודה. אם הערך הוא null, המכשיר שנבחר כברירת מחדל הוא המכשיר שנבחר על ידי adb.

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור פג.
AdbCommandRejectedException אם adb דוחה את הפקודה
במקרה של שגיאת קלט/פלט בחיבור.

לכתוב

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

הכתיבה תימשך עד שכל הנתונים בפרמטר data ייכתבו, עד שיגיעו לאורך האופציונלי, עד שהזמן הקצוב יפוג או עד שהחיבור ייכשל. הפונקציה מחזירה את הערך true אם כל הנתונים נכתבו.

פרמטרים
chan SocketChannel: השקע הפתוח שאליו רוצים לכתוב.

data byte: המאגר לשליחה.

length int: האורך לכתיבה או ‎-1 כדי לשלוח את כל המאגר.

timeout int: ערך הזמן הקצוב לתפוגה. ערך פסק זמן של אפס פירושו "המתנה ללא הגבלת זמן".

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור מסתיים.
במקרה של שגיאת קלט/פלט בחיבור.

לכתוב

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

הכתיבה תתבצע עד שכל הנתונים ב-data ייכתבו, או עד שהחיבור ייכשל או יפוג.

המערכת תשתמש בערך ברירת המחדל של הזמן הקצוב לתפוגה.

פרמטרים
chan SocketChannel: השקע הפתוח שאליו רוצים לכתוב.

data byte: המאגר לשליחה.

זריקות
TimeoutException במקרה שהזמן הקצוב לתפוגה של החיבור מסתיים.
במקרה של שגיאת קלט/פלט בחיבור.