다음을 통해 공유


AsynchronousSocketChannel.Read 메서드

정의

오버로드

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

이 채널에서 지정된 버퍼의 하위 시퀀스로 바이트 시퀀스를 읽습니다.

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

Read(ByteBuffer)
Read(ByteBuffer, Object, ICompletionHandler)

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

이 채널에서 지정된 버퍼의 하위 시퀀스로 바이트 시퀀스를 읽습니다.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_arrayLjava_nio_ByteBuffer_IIJLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_arrayLjava_nio_ByteBuffer_IIJLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Read : Java.Nio.ByteBuffer[] * int * int * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

매개 변수

dsts
ByteBuffer[]

바이트를 전송할 버퍼

offset
Int32

바이트를 전송할 첫 번째 버퍼의 버퍼 배열 내 오프셋입니다. 은 음수가 아니어야 하며 다음보다 크지 않아야 합니다. dsts.length

length
Int32

액세스할 최대 버퍼 수입니다. 은 음수가 아니어야 하며 다음보다 크지 않아야 합니다. dsts.length - offset

timeout
Int64

I/O 작업이 완료할 최대 시간

unit
TimeUnit

인수의 시간 단위입니다 timeout .

attachment
Object

I/O 작업에 연결할 개체입니다. 가 될 수 있습니다. null

handler
ICompletionHandler

결과를 소비하기 위한 처리기입니다.

특성

설명

이 채널에서 지정된 버퍼의 하위 시퀀스로 바이트 시퀀스를 읽습니다. em 산란 읽기</em>이라고<>도 하는 이 작업은 하나 이상의 고정 길이 헤더와 가변 길이 본문으로 구성된 세그먼트로 데이터를 그룹화하는 네트워크 프로토콜을 구현할 때 유용합니다. 매개 변수는 handler 읽기 작업이 완료되거나 실패할 때 호출되는 완료 처리기입니다. 완료 처리기에 전달된 결과는 읽은 바이트 수이거나 -1 채널이 스트림 끝에 도달했기 때문에 바이트를 읽을 수 없는 경우입니다.

이 메서드는 이 채널에서 최대 r 바이트의 읽기를 시작합니다. 여기서 r은 지정된 버퍼 배열의 지정된 하위 시퀀스에 남아 있는 총 바이트 수입니다.

<blockquote>

dsts[offset].remaining()
                + dsts[offset+1].remaining()
                + ... + dsts[offset+length-1].remaining()

</blockquote>

읽기가 시도되는 순간입니다.

길이 n 의 바이트 시퀀스가 읽혀진 경우 0여기서  < n <= r. 이 시퀀스의 첫 번째 dsts[offset].remaining() 바이트까지 버퍼로 전송되고, 전체 바이트 시퀀스가 지정된 버퍼 dsts[offset]로 전송될 때까지 최대 다음 dsts[offset+1].remaining() 바이트가 버퍼 dsts[offset+1]로 전송됩니다. 가능한 한 많은 바이트가 각 버퍼로 전송되므로 마지막 업데이트된 버퍼를 제외한 각 업데이트된 버퍼의 최종 위치는 해당 버퍼의 제한과 같아야 합니다. 기본 운영 체제는 I/O 작업에 사용할 수 있는 버퍼 수에 제한을 적용할 수 있습니다. 버퍼 수(바이트가 남아 있음)가 이 제한을 초과하는 경우 운영 체제에서 허용하는 최대 버퍼 수로 I/O 작업이 수행됩니다.

시간 제한이 지정되고 작업이 완료되기 전에 시간 제한이 경과하면 예외 InterruptedByTimeoutException로 완료됩니다. 시간 제한이 발생하고 구현에서 바이트를 읽지 않았거나 채널에서 지정된 버퍼로 읽지 않도록 보장할 수 없는 경우 채널에서 읽기를 추가로 시도하면 지정되지 않은 런타임 예외가 throw됩니다.

에 대한 java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_Ljava_nio_ByteBuffer_JLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Read (Java.Nio.ByteBuffer? dst, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_Ljava_nio_ByteBuffer_JLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Read : Java.Nio.ByteBuffer * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

매개 변수

dst
ByteBuffer

바이트를 전송할 버퍼입니다.

timeout
Int64

I/O 작업이 완료할 최대 시간

unit
TimeUnit

인수의 시간 단위입니다 timeout .

attachment
Object

I/O 작업에 연결할 개체입니다. 가 될 수 있습니다. null

handler
ICompletionHandler

결과를 소비하기 위한 처리기입니다.

특성

설명

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

이 메서드는 비동기 읽기 작업을 시작하여 이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다. 매개 변수는 handler 읽기 작업이 완료되거나 실패할 때 호출되는 완료 처리기입니다. 완료 처리기에 전달된 결과는 읽은 바이트 수이거나 -1 채널이 스트림 끝에 도달했기 때문에 바이트를 읽을 수 없는 경우입니다.

시간 제한이 지정되고 작업이 완료되기 전에 시간 제한이 경과하면 예외 InterruptedByTimeoutException를 제외하고 작업이 완료됩니다. 시간 제한이 발생하고 구현에서 바이트가 읽혀지지 않았거나 채널에서 지정된 버퍼로 읽지 않도록 보장할 수 없는 경우 채널에서 읽기를 추가로 시도하면 지정되지 않은 런타임 예외가 throw됩니다.

그렇지 않으면 이 메서드는 메서드와 동일한 방식으로 작동합니다 AsynchronousByteChannel#read(ByteBuffer,Object,CompletionHandler) .

에 대한 java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Read(ByteBuffer)

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler", ApiSince=26)>]
abstract member Read : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture

매개 변수

반환

구현

특성

설명

에 대한 java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Read(ByteBuffer, Object, ICompletionHandler)

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Read (Java.Nio.ByteBuffer? dst, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
override this.Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

매개 변수

attachment
Object

구현

특성

설명

에 대한 java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상