SocketChannel 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다.
[Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)]
public abstract class SocketChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IByteChannel, Java.Nio.Channels.IGatheringByteChannel, Java.Nio.Channels.IScatteringByteChannel
[<Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)>]
type SocketChannel = class
inherit AbstractSelectableChannel
interface IByteChannel
interface IReadableByteChannel
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IWritableByteChannel
interface IGatheringByteChannel
interface IScatteringByteChannel
- 상속
- 특성
- 구현
설명
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다.
소켓 채널은 이 클래스의 메서드 중 #open open
하나를 호출하여 만듭니다. 임의의 기존 소켓에 대한 채널을 만들 수 없습니다. 새로 만든 소켓 채널이 열려 있지만 아직 연결되지 않았습니다. 연결되지 않은 채널에서 I/O 작업을 호출하려고 하면 이 NotYetConnectedException
throw됩니다. 소켓 채널은 메서드 #connect connect
를 호출하여 연결할 수 있습니다. 일단 연결되면 소켓 채널은 닫을 때까지 연결된 상태로 유지됩니다. 소켓 채널이 연결되어 있는지 여부는 해당 #isConnected isConnected
메서드를 호출하여 확인할 수 있습니다.
소켓 채널은 비 차단 연결을 지원합니다. 소켓 채널을 만들 수 있으며 원격 소켓에 대한 링크를 설정하는 프로세스는 메서드에 의해 #finishConnect finishConnect
나중에 완료하기 위해 메서드를 통해 #connect connect
시작될 수 있습니다. 연결 작업이 진행 중인지 여부는 메서드를 호출하여 #isConnectionPending isConnectionPending
확인할 수 있습니다.
소켓 채널은 클래스 에 지정된 비동 기 닫기 작업과 유사한 비동기 종료를 Channel
지원합니다. 소켓 채널의 읽기 작업에서 다른 스레드가 차단되는 동안 소켓의 입력 쪽이 한 스레드에 의해 종료되는 경우 차단된 스레드의 읽기 작업은 바이트를 읽지 않고 완료되고 를 반환 -1
합니다. 소켓 채널의 쓰기 작업에서 다른 스레드가 차단되는 동안 소켓의 출력 쪽이 한 스레드에 의해 종료되는 경우 차단된 스레드는 를 AsynchronousCloseException
수신합니다.
소켓 옵션은 메서드를 사용하여 구성됩니다 #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/>< tr tr><><th scope="row"<>java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR
/th><td> re-use address </td></tr tr<>><th scope="row"java.net.StandardSocketOptions#SO_LINGER SO_LINGER
<>/th<>td> Linger on close(차단 모드로만 구성된 경우) </td<>/tr tr<<>>th scope="row"<java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY
>/th><td> Nagle 알고리즘 </td<>/tr></tbody<>/table></blockquote> 추가(구현별) 옵션을 사용하지 않도록 설정할 수도 있습니다.
소켓 채널은 여러 동시 스레드에서 사용하기에 안전합니다. 그들은 동시 읽기 및 쓰기를 지원하지만, 최대 하나의 스레드는 읽을 수 있으며, 최대 하나의 스레드는 지정된 시간에 작성 될 수 있습니다. #connect connect
및 #finishConnect finishConnect
메서드는 서로 상호 동기화되며 이러한 메서드 중 하나를 호출하는 동안 읽기 또는 쓰기 작업을 시작하려는 시도는 호출이 완료될 때까지 차단됩니다.
1.4에 추가되었습니다.
에 대한 Java 설명서입니다 java.nio.channels.SocketChannel
.
이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
SocketChannel(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
SocketChannel(SelectorProvider) |
이 클래스의 새 인스턴스를 초기화합니다. |
속성
Class |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
IsBlocking |
이 채널이 차단 모드에 있는지 여부를 나타냅니다. (다음에서 상속됨 AbstractSelectableChannel) |
IsConnected |
이 채널의 소켓이 연결되어 있는지 여부를 나타냅니다. |
IsConnectionPending |
이 채널의 소켓이 여전히 연결하려고 하는지 여부를 나타냅니다. |
IsOpen |
이 채널이 열려 있으면 true를 반환합니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
IsRegistered |
이 채널이 하나 이상의 선택기에 등록되어 있는지 여부를 나타냅니다. (다음에서 상속됨 AbstractSelectableChannel) |
JniIdentityHashCode |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. (다음에서 상속됨 Object) |
JniPeerMembers |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
LocalAddress |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
PeerReference |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. (다음에서 상속됨 Object) |
RemoteAddress |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
Begin() |
무기한 차단할 수 있는 I/O 작업의 시작을 표시합니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
Bind(SocketAddress) |
1에 추가되었습니다. |
BlockingLock() |
및 |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Close() |
이 채널을 닫습니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
ConfigureBlocking(Boolean) |
이 채널의 차단 모드를 조정합니다. (다음에서 상속됨 AbstractSelectableChannel) |
Connect(SocketAddress) |
이 채널의 소켓을 연결합니다. |
ConnectAsync(SocketAddress) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
Dispose() |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. (다음에서 상속됨 Object) |
End(Boolean) |
무기한 차단할 수 있는 I/O 작업의 끝을 표시합니다. (다음에서 상속됨 AbstractInterruptibleChannel) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
FinishConnect() |
소켓 채널 연결 프로세스를 완료합니다. |
FinishConnectAsync() |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
ImplCloseChannel() |
이 채널을 닫습니다. (다음에서 상속됨 AbstractSelectableChannel) |
ImplCloseSelectableChannel() |
이 선택 가능한 채널을 닫습니다. (다음에서 상속됨 AbstractSelectableChannel) |
ImplConfigureBlocking(Boolean) |
이 채널의 차단 모드를 조정합니다. (다음에서 상속됨 AbstractSelectableChannel) |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
KeyFor(Selector) |
지정된 선택기에서 이 채널의 선택 키를 가져옵니다. (다음에서 상속됨 AbstractSelectableChannel) |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Open() |
소켓 채널을 엽니다. |
Open(SocketAddress) |
소켓 채널을 열고 원격 주소에 연결합니다. |
Provider() |
이 채널을 만든 공급자를 반환합니다. (다음에서 상속됨 AbstractSelectableChannel) |
Read(ByteBuffer) |
이 소켓 채널에서 지정된 버퍼로 바이트를 읽습니다. |
Read(ByteBuffer[]) |
이 소켓 채널에서 바이트를 읽고 지정된 버퍼 배열에 저장합니다. |
Read(ByteBuffer[], Int32, Int32) |
이 소켓 채널에서 지정된 버퍼의 하위 집합으로 바이트를 읽습니다. |
Register(Selector, Operations) |
지정된 선택기를 사용하여 이 채널을 등록하고 선택 키를 반환합니다. (다음에서 상속됨 SelectableChannel) |
Register(Selector, Operations, Object) |
지정된 선택기를 사용하여 이 채널을 등록하고 선택 키를 반환합니다. (다음에서 상속됨 AbstractSelectableChannel) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetOption(ISocketOption, Object) |
1에 추가되었습니다. |
ShutdownInput() |
채널을 닫지 않고 읽기 위해 연결을 종료합니다. |
ShutdownOutput() |
채널을 닫지 않고 쓰기 위해 연결을 종료합니다. |
Socket() |
이 채널과 연결된 소켓을 검색합니다. |
ToArray<T>() |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. (다음에서 상속됨 Object) |
ValidOps() |
이 채널의 지원되는 작업을 식별하는 작업 집합을 반환합니다. |
Wait() |
현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Write(ByteBuffer) |
지정된 바이트 버퍼의 바이트를 이 소켓 채널에 씁니다. |
Write(ByteBuffer[]) |
지정된 모든 바이트 버퍼의 바이트를 이 소켓 채널에 씁니다. |
Write(ByteBuffer[], Int32, Int32) |
버퍼에서 이 소켓 채널에 지정된 바이트의 하위 집합을 쓰려고 시도합니다. |
명시적 인터페이스 구현
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) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
ReadAsync(IReadableByteChannel, ByteBuffer) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |
WriteAsync(IWritableByteChannel, ByteBuffer) |
스트림 지향 연결 소켓에 대해 선택할 수 있는 채널입니다. |