AsynchronousSocketChannel 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
스트림 지향 연결 소켓에 대한 비동기 채널입니다.
[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
- 상속
- 특성
- 구현
설명
스트림 지향 연결 소켓에 대한 비동기 채널입니다.
비동기 소켓 채널은 두 가지 방법 중 하나로 만들어집니다. 이 클래스에서 정의한 메서드 중 #open open
하나를 호출하여 새로 만든 AsynchronousSocketChannel
가 만들어집니다. 새로 만든 채널이 열려 있지만 아직 연결되지 않았습니다. 연결 AsynchronousSocketChannel
은 의 AsynchronousServerSocketChannel
소켓에 연결되면 만들어집니다. 임의의 기존 java.net.Socket socket
에 대한 비동기 소켓 채널을 만들 수 없습니다.
새로 만든 채널은 메서드 #connect connect
를 호출하여 연결됩니다. 연결되면 채널이 닫힙니다. 소켓 채널이 연결되어 있는지 여부는 해당 #getRemoteAddress getRemoteAddress
메서드를 호출하여 확인할 수 있습니다. 연결되지 않은 채널에서 I/O 작업을 호출하려고 하면 이 NotYetConnectedException
throw됩니다.
이 유형의 채널은 여러 동시 스레드에서 사용하기에 안전합니다. 동시 읽기 및 쓰기를 지원하지만, 최대 하나의 읽기 작업과 하나의 쓰기 작업은 언제든지 처리할 수 있습니다. 이전 읽기 작업이 완료되기 전에 스레드가 읽기 작업을 시작하면 가 ReadPendingException
throw됩니다. 마찬가지로 이전 쓰기가 완료되기 전에 쓰기 작업을 시작하려고 하면 가 WritePendingException
throw됩니다.
소켓 옵션은 메서드를 사용하여 구성됩니다 #setOption(SocketOption,Object) setOption
. 비동기 소켓 채널은 blockquote table class="striped"<>캡션 style="display:none">Socket options</캡션<>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> 소켓 송신 버퍼 </td></tr tr<<>>th scope="row"java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF
<>/th><td> 소켓 수신 버퍼 </td<>/tr tr><<>th scope="row"><java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE
/th><td> 연결 <유지 /td></trtrth<>scope="row"><java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR
/th><td> re-use address </td></tr tr<<>>th scope="row">java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY
</th><td> Nagle 알고리즘 </td<>/tr<>/tbody<>/table<>/blockquote> 추가(구현별) 옵션도 지원될 수 있습니다.><
<h2>시간 제한</h2>
#read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read
이 클래스에서 정의한 및 #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write
메서드를 사용하면 읽기 또는 쓰기 작업을 시작할 때 시간 제한을 지정할 수 있습니다. 작업이 완료되기 전에 시간 제한이 경과하면 예외 InterruptedByTimeoutException
를 사용하여 작업이 완료됩니다. 시간 제한으로 채널 또는 기본 연결이 일관되지 않은 상태로 남을 수 있습니다. 구현이 채널에서 바이트를 읽지 않도록 보장할 수 없는 경우 채널을 구현 특정 <em 오류 상태</em에 넣습니다>>. 이후 작업을 시작 read
하려고 하면 지정되지 않은 런타임 예외가 throw됩니다. 마찬가지로 작업 시간이 초과되고 구현에서 바이트가 채널에 기록되지 않았다고 보장할 수 없는 경우 write
채널에 write
대한 추가 시도로 인해 지정되지 않은 런타임 예외가 throw됩니다. 시간 제한이 경과하면 I/O 작업에 대한 , 또는 버퍼 시퀀스의 상태가 ByteBuffer
정의되지 않습니다. 버퍼를 삭제하거나 적어도 주의하여 채널이 열려 있는 동안 버퍼에 액세스하지 않도록 해야 합니다. 시간 제한 매개 변수를 허용하는 모든 메서드는 값을 0보다 작거나 같음으로 처리하여 I/O 작업이 시간 초과가 아님을 의미합니다.
1.7에 추가되었습니다.
에 대한 Java 설명서입니다 java.nio.channels.AsynchronousSocketChannel
.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
AsynchronousSocketChannel(AsynchronousChannelProvider) |
이 클래스의 새 인스턴스를 초기화합니다. |
AsynchronousSocketChannel(IntPtr, JniHandleOwnership) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
속성
Class |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
IsOpen |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
JniIdentityHashCode |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
JniPeerMembers |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
LocalAddress |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
PeerReference |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
RemoteAddress |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
ThresholdClass |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
ThresholdType |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
메서드
Bind(SocketAddress) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Close() |
이 채널을 닫습니다. |
Connect(SocketAddress) |
이 채널을 연결합니다. |
Connect(SocketAddress, Object, ICompletionHandler) |
이 채널을 연결합니다. |
Dispose() |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Open() |
비동기 소켓 채널을 엽니다. |
Open(AsynchronousChannelGroup) |
비동기 소켓 채널을 엽니다. |
Provider() |
이 채널을 만든 공급자를 반환합니다. |
Read(ByteBuffer) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다. |
Read(ByteBuffer, Object, ICompletionHandler) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
이 채널에서 지정된 버퍼의 하위 시퀀스로 바이트 시퀀스를 읽습니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetOption(ISocketOption, Object) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
ShutdownInput() |
채널을 닫지 않고 읽기용 연결을 종료합니다. |
ShutdownOutput() |
채널을 닫지 않고 쓰기에 대한 연결을 종료합니다. |
ToArray<T>() |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
Wait() |
현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Write(ByteBuffer) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
지정된 버퍼에서 이 채널에 바이트 시퀀스를 씁니다. |
Write(ByteBuffer, Object, ICompletionHandler) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
지정된 버퍼의 하위 시퀀스에서 이 채널에 바이트 시퀀스를 씁니다. |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |
GetJniTypeName(IJavaPeerable) |
스트림 지향 연결 소켓에 대한 비동기 채널입니다. |