AdbHelper

public final class AdbHelper
extends Object

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


Lớp trợ giúp để xử lý các yêu cầu và kết nối với adb.

AndroidDebugBridge là API công khai để kết nối với adb, trong khi AdbHelper thực hiện các thao tác ở cấp thấp.

Thao tác này hiện đang sử dụng I/O không chặn theo cơ chế chờ đợi quay vòng. Việc sử dụng Bộ chọn sẽ hiệu quả hơn, nhưng có vẻ không cần thiết cho những gì chúng ta đang làm ở đây.

Tóm tắt

Lớp lồng ghép

class AdbHelper.AdbResponse

Phản hồi từ ADB. 

Hằng số

String HOST_TRANSPORT

Trường

public static final Charset DEFAULT_CHARSET

Phương thức công khai

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

Tạo một quy tắc chuyển tiếp cổng giữa cổng cục bộ và cổng từ xa.

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

Tạo yêu cầu chuyển tiếp cổng đến một quy trình jdwp.

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

Tạo và kết nối một socket truyền thẳng mới, từ máy chủ lưu trữ đến một cổng trên thiết bị.

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

Tạo một cổng đảo ngược giữa cổng từ xa và cổng cục bộ.

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

Thực thi một lệnh shell trên thiết bị và truy xuất đầu ra.

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

Thực thi một lệnh từ xa trên thiết bị và truy xuất đầu ra.

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

Thực thi một lệnh shell trên thiết bị và truy xuất đầu ra.

static byte[] formAdbRequest(String payloadString)

Tạo một chuỗi ASCII có bốn chữ số thập lục phân ở phía trước.

static String getFeatures(IDevice device)

Truy vấn một tập hợp các tính năng được hỗ trợ trên thiết bị.

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

Truy xuất bộ nhớ đệm khung hình từ thiết bị với thời gian chờ đã cho.

static String getHostFeatures()

Truy vấn một tập hợp các tính năng được hỗ trợ từ máy chủ lưu trữ ADB.

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

Tạo và kết nối một socket truyền thẳng mới, từ máy chủ lưu trữ đến một cổng trên thiết bị.

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

Gọi dịch vụ trên một thiết bị từ xa.

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

Gọi dịch vụ host:exec trên một thiết bị từ xa.

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

Đọc phản hồi từ ADB sau một lệnh.

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

Khởi động lại thiết bị.

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

Xoá hoạt động chuyển tiếp cổng giữa cổng cục bộ và cổng từ xa.

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

Xoá hoạt động đảo ngược cổng giữa cổng từ xa và cổng cục bộ.

static void root(InetSocketAddress adbSockAddr, IDevice device)

Yêu cầu tiến trình nền adb chuyển sang quyền root trên thiết bị.

static void setDevice(SocketChannel adbChan, IDevice device)

Cho một IDevice, hãy lấy số sê-ri và yêu cầu adb giao tiếp với thiết bị đó.

static void setDevice(SocketChannel adbChan, String deviceSerialNumber)

cho adb biết cần giao tiếp với một thiết bị cụ thể

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

Ghi cho đến khi tất cả dữ liệu trong "data" được ghi, đạt đến độ dài không bắt buộc, hết thời gian chờ hoặc kết nối bị lỗi.

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

Ghi cho đến khi tất cả dữ liệu trong "data" được ghi hoặc kết nối bị lỗi hoặc hết thời gian chờ.

Hằng số

HOST_TRANSPORT

public static final String HOST_TRANSPORT

Giá trị không đổi: "host:transport:"

Trường

DEFAULT_CHARSET

public static final Charset DEFAULT_CHARSET

Phương thức công khai

createForward

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

Tạo một quy tắc chuyển tiếp cổng giữa cổng cục bộ và cổng từ xa.

Tham số
adbSockAddr InetSocketAddress: địa chỉ socket để kết nối với adb

device IDevice: thiết bị mà bạn muốn chuyển tiếp cổng

localPortSpec String: quy cách của cổng cục bộ cần chuyển tiếp, phải có định dạng tcp:

remotePortSpec String: quy cách của cổng từ xa cần chuyển tiếp đến một trong các cổng sau: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (chỉ từ xa)

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message, 
                boolean errorDuringDeviceSelection)

Tham số
message String

errorDuringDeviceSelection boolean

Giá trị trả về
AdbCommandRejectedException

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message)

Tham số
message String

Giá trị trả về
AdbCommandRejectedException

createJdwpForwardRequest

public static byte[] createJdwpForwardRequest (int pid)

Tạo yêu cầu chuyển tiếp cổng đến một quy trình jdwp. Thao tác này sẽ trả về một mảng chứa "####jwdp:{pid}".

Tham số
pid int: pid của quy trình jdwp trên thiết bị.

Giá trị trả về
byte[]

createPassThroughConnection

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

Tạo và kết nối một socket truyền thẳng mới, từ máy chủ lưu trữ đến một cổng trên thiết bị.

Tham số
deviceSerialNumber String: số sê-ri của thiết bị cần kết nối. Có thể là giá trị rỗng hoặc trống. Trong trường hợp này, kết nối sẽ được thực hiện với thiết bị có sẵn đầu tiên.

pid int: pid quy trình để kết nối.

Giá trị trả về
SocketChannel

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

createReverse

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

Tạo một cổng đảo ngược giữa cổng từ xa và cổng cục bộ.

Tham số
adbSockAddr InetSocketAddress: địa chỉ socket để kết nối với adb

device IDevice: thiết bị mà bạn muốn đảo ngược cổng

remotePortSpec String: quy cách của cổng từ xa cần đảo ngược đến một trong các cổng sau: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (chỉ từ xa)

localPortSpec String: quy cách của cổng cục bộ, phải có định dạng tcp:

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

executeRemoteCommand

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

Thực thi một lệnh shell trên thiết bị và truy xuất đầu ra. Đầu ra sẽ được chuyển đến rcvr khi đầu ra đến.

Tham số
adbSockAddr InetSocketAddress: ERROR(/InetSocketAddress) đến adb.

command String: lệnh shell cần thực thi

device IDevice: IDevice mà bạn muốn thực thi lệnh.

rcvr IShellOutputReceiver: IShellOutputReceiver sẽ nhận được đầu ra của lệnh shell

maxTimeToOutputResponse long: thời gian tối đa giữa các đầu ra lệnh. Nếu thời gian giữa các đầu ra lệnh dài hơn, phương thức sẽ gửi ShellCommandUnresponsiveException. Giá trị 0 có nghĩa là phương thức sẽ chờ đầu ra của lệnh mãi mãi và không bao giờ gửi.

maxTimeUnits TimeUnit: Đơn vị cho các giá trị maxTimeToOutputResponse khác 0.

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối khi gửi lệnh.
AdbCommandRejectedException nếu adb từ chối lệnh
ShellCommandUnresponsiveException trong trường hợp lệnh shell không gửi bất kỳ đầu ra nào trong khoảng thời gian dài hơn maxTimeToOutputResponse.
trong trường hợp xảy ra lỗi I/O trên kết nối.

executeRemoteCommand

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

Thực thi một lệnh từ xa trên thiết bị và truy xuất đầu ra. Đầu ra sẽ được chuyển đến rcvr khi đầu ra đến. Lệnh này được thực thi bởi dịch vụ từ xa do tham số adbService xác định.

Tham số
adbSockAddr InetSocketAddress: ERROR(/InetSocketAddress) đến adb.

adbService AdbHelper.AdbService: AdbHelper.AdbService để dùng chạy lệnh.

command String: lệnh shell cần thực thi

device IDevice: IDevice mà bạn muốn thực thi lệnh.

rcvr IShellOutputReceiver: IShellOutputReceiver sẽ nhận được đầu ra của lệnh shell

maxTimeout long: thời gian chờ tối đa để thực thi toàn bộ lệnh. Giá trị 0 có nghĩa là không có thời gian chờ.

maxTimeToOutputResponse long: thời gian tối đa giữa các đầu ra lệnh. Nếu thời gian giữa các đầu ra lệnh dài hơn, phương thức sẽ gửi ShellCommandUnresponsiveException. Giá trị 0 có nghĩa là phương thức sẽ chờ đầu ra của lệnh mãi mãi và không bao giờ gửi.

maxTimeUnits TimeUnit: Đơn vị cho các giá trị maxTimeoutmaxTimeToOutputResponse khác 0.

is InputStream: ERROR(/InputStream) không bắt buộc sẽ được truyền trực tuyến sau khi gọi lệnh và trước khi truy xuất phản hồi.

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối khi gửi lệnh.
AdbCommandRejectedException nếu adb từ chối lệnh
ShellCommandUnresponsiveException trong trường hợp lệnh shell không gửi bất kỳ đầu ra nào trong khoảng thời gian dài hơn maxTimeToOutputResponse.
trong trường hợp xảy ra lỗi I/O trên kết nối.

executeRemoteCommand

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

Thực thi một lệnh shell trên thiết bị và truy xuất đầu ra. Đầu ra sẽ được chuyển đến rcvr khi đầu ra đến.

Tham số
adbSockAddr InetSocketAddress: ERROR(/InetSocketAddress) đến adb.

command String: lệnh shell cần thực thi

device IDevice: IDevice mà bạn muốn thực thi lệnh.

rcvr IShellOutputReceiver: IShellOutputReceiver sẽ nhận được đầu ra của lệnh shell

maxTimeout long: thời gian tối đa để lệnh trả về. Giá trị 0 có nghĩa là sẽ không áp dụng thời gian chờ tối đa.

maxTimeToOutputResponse long: thời gian tối đa giữa các đầu ra lệnh. Nếu thời gian giữa các đầu ra lệnh dài hơn, phương thức sẽ gửi ShellCommandUnresponsiveException. Giá trị 0 có nghĩa là phương thức sẽ chờ đầu ra của lệnh mãi mãi và không bao giờ gửi.

maxTimeUnits TimeUnit: Đơn vị cho các giá trị maxTimeoutmaxTimeToOutputResponse khác 0.

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối khi gửi lệnh.
AdbCommandRejectedException nếu adb từ chối lệnh
ShellCommandUnresponsiveException trong trường hợp lệnh shell không gửi bất kỳ đầu ra nào trong khoảng thời gian dài hơn maxTimeToOutputResponse.
trong trường hợp xảy ra lỗi I/O trên kết nối.

formAdbRequest

public static byte[] formAdbRequest (String payloadString)

Tạo một chuỗi ASCII có bốn chữ số thập lục phân ở phía trước. "####" mở đầu là độ dài của phần còn lại của chuỗi, được mã hoá dưới dạng ASCII thập lục phân (không phân biệt chữ hoa chữ thường).

Tham số
payloadString String

Giá trị trả về
byte[]

getFeatures

public static String getFeatures (IDevice device)

Truy vấn một tập hợp các tính năng được hỗ trợ trên thiết bị.

Tham số
device IDevice: thiết bị mà bạn muốn chuyển tiếp cổng

Giá trị trả về
String

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

getFrameBuffer

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

Truy xuất bộ nhớ đệm khung hình từ thiết bị với thời gian chờ đã cho. Thời gian chờ là 0 cho biết rằng nó sẽ đợi mãi mãi.

Tham số
adbSockAddr InetSocketAddress

device IDevice

timeout long

unit TimeUnit

Giá trị trả về
RawImage

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

getHostFeatures

public static String getHostFeatures ()

Truy vấn một tập hợp các tính năng được hỗ trợ từ máy chủ lưu trữ ADB.

Giá trị trả về
String

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

open

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

Tạo và kết nối một socket truyền thẳng mới, từ máy chủ lưu trữ đến một cổng trên thiết bị.

Tham số
device IDevice: thiết bị cần kết nối. Có thể là giá trị rỗng, trong trường hợp đó, kết nối sẽ được thực hiện với thiết bị có sẵn đầu tiên.

devicePort int: cổng mà chúng ta đang mở

Giá trị trả về
SocketChannel

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
trong trường hợp xảy ra lỗi I/O trên kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh

rawAdbService

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

Gọi dịch vụ trên một thiết bị từ xa. Trả về một kênh socket được kết nối với quy trình thực thi.

ddlmib từ bỏ quyền sở hữu SocketChannel được trả về và phải được đóng rõ ràng sau khi sử dụng.

Tham số
device IDevice: thiết bị cần kết nối. Có thể là giá trị rỗng, trong trường hợp đó, kết nối sẽ được thực hiện với thiết bị có sẵn đầu tiên.

command String: lệnh cần thực thi

service AdbHelper.AdbService: AdbHelper.AdbService để dùng chạy lệnh.

Giá trị trả về
SocketChannel

Gửi
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

rawExec

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

Gọi dịch vụ host:exec trên một thiết bị từ xa. Trả về một kênh socket được kết nối với quy trình thực thi. Xin lưu ý rằng dịch vụ exec không phân biệt stdout và stderr, vì vậy, bất cứ nội dung nào được đọc từ socket đều có thể đến từ cả hai đầu ra và được xen kẽ.

ddlmib từ bỏ quyền sở hữu SocketChannel được trả về và phải được đóng rõ ràng sau khi sử dụng.

Tham số
device IDevice: thiết bị cần kết nối. Có thể là giá trị rỗng, trong trường hợp đó, kết nối sẽ được thực hiện với thiết bị có sẵn đầu tiên.

executable String: đường dẫn tuyệt đối của tệp thực thi cần chạy

parameters String: các tham số cần được cung cấp khi thực thi tệp thực thi

Giá trị trả về
SocketChannel

Gửi
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

readAdbResponse

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

Đọc phản hồi từ ADB sau một lệnh.

Tham số
chan SocketChannel: Kênh socket được kết nối với adb.

readDiagString boolean: Nếu đúng, chúng tôi dự kiến phản hồi OKAY sẽ đi kèm với một chuỗi chẩn đoán. Nếu không, chúng tôi chỉ mong đợi chuỗi chẩn đoán tuân theo một FAIL.

Giá trị trả về
AdbHelper.AdbResponse

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
trong trường hợp xảy ra lỗi I/O trên kết nối.

khởi động lại

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

Khởi động lại thiết bị.

Tham số
into String: chế độ khởi động lại (chế độ khôi phục, trình tải khởi động). Hoặc giá trị rỗng để chỉ khởi động lại.

adbSockAddr InetSocketAddress

device IDevice

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

removeForward

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

Xoá hoạt động chuyển tiếp cổng giữa cổng cục bộ và cổng từ xa.

Tham số
adbSockAddr InetSocketAddress: địa chỉ socket để kết nối với adb

device IDevice: thiết bị mà bạn muốn xoá tính năng chuyển tiếp cổng

localPortSpec String: quy cách của cổng cục bộ đã được chuyển tiếp, phải có định dạng tcp:

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

removeReverse

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

Xoá hoạt động đảo ngược cổng giữa cổng từ xa và cổng cục bộ.

Tham số
adbSockAddr InetSocketAddress: địa chỉ socket để kết nối với adb

device IDevice: thiết bị mà bạn muốn xoá tính năng đảo ngược cổng

remotePortSpec String: quy cách của cổng từ xa được đảo ngược, một trong các cổng: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (chỉ từ xa)

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

root

public static void root (InetSocketAddress adbSockAddr, 
                IDevice device)

Yêu cầu tiến trình nền adb chuyển sang quyền root trên thiết bị. Lệnh này có thể thất bại ngầm và chỉ thành công trên các bản dựng dành cho nhà phát triển. Để biết thêm thông tin, vui lòng tham khảo lệnh "adb root". Nếu cần biết thao tác có thành công hay không, bạn có thể kiểm tra kết quả của phương thức executeRemoteCommand bằng lệnh "echo \$USER_ID". Nếu kết quả trả về là 0 thì tức là tiến trình adbd đang chạy với quyền root.

Tham số
adbSockAddr InetSocketAddress

device IDevice

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

setDevice

public static void setDevice (SocketChannel adbChan, 
                IDevice device)

Cho trước một IDevice, hãy lấy số sê-ri và yêu cầu adb giao tiếp với thiết bị đó.

Tham số
adbChan SocketChannel: kết nối socket với adb.

device IDevice: thiết bị để giao tiếp.

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

setDevice

public static void setDevice (SocketChannel adbChan, 
                String deviceSerialNumber)

cho adb biết cần giao tiếp với một thiết bị cụ thể

Tham số
adbChan SocketChannel: kết nối socket với adb

deviceSerialNumber String: số sê-ri của thiết bị cần giao tiếp, nếu giá trị này là null thì thiết bị mặc định được chọn là thiết bị do adb chọn.

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
AdbCommandRejectedException nếu adb từ chối lệnh
trong trường hợp xảy ra lỗi I/O trên kết nối.

write

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

Ghi cho đến khi tất cả dữ liệu trong "data" được ghi, đạt đến độ dài không bắt buộc, hết thời gian chờ hoặc kết nối bị lỗi. Trả về "true" nếu tất cả dữ liệu đã được ghi.

Tham số
chan SocketChannel: socket đã mở để ghi vào.

data byte: vùng đệm cần gửi.

length int: độ dài cần ghi hoặc -1 để gửi toàn bộ vùng đệm.

timeout int: Giá trị thời gian chờ. Thời gian chờ bằng 0 có nghĩa là "chờ mãi mãi".

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
trong trường hợp xảy ra lỗi I/O trên kết nối.

write

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

Ghi cho đến khi tất cả dữ liệu trong "data" được ghi hoặc kết nối bị lỗi hoặc hết thời gian chờ.

Thao tác này sử dụng giá trị thời gian chờ mặc định.

Tham số
chan SocketChannel: socket đã mở để ghi vào.

data byte: vùng đệm để gửi.

Gửi
TimeoutException trong trường hợp hết thời gian chờ kết nối.
trong trường hợp xảy ra lỗi I/O trên kết nối.