DatagramChannel.Receive(ByteBuffer) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 채널을 통해 데이터그램을 받습니다.
[Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")]
public abstract Java.Net.SocketAddress? Receive(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")>]
abstract member Receive : Java.Nio.ByteBuffer -> Java.Net.SocketAddress
매개 변수
- dst
- ByteBuffer
데이터그램을 전송할 버퍼입니다.
반환
데이터그램의 원본 주소 또는 null 이 채널이 비차단 모드이고 데이터그램을 즉시 사용할 수 없는 경우
- 특성
예외
채널이 이미 닫혀 있는 경우
이 메서드가 작동 중인 동안 다른 스레드에 의해 채널이 닫혀 있으면 입니다.
작업이 진행되는 동안 다른 스레드가 호출 스레드를 중단하면 입니다. 호출 스레드는 인터럽트 상태를 설정하며 채널은 닫힙니다.
다른 I/O 오류가 발생합니다.
설명
이 채널을 통해 데이터그램을 받습니다.
데이터그램을 즉시 사용할 수 있거나 이 채널이 차단 모드에 있고 결국 사용할 수 있게 되면 데이터그램이 지정된 바이트 버퍼에 복사되고 원본 주소가 반환됩니다. 이 채널이 비차단 모드이고 데이터그램을 즉시 사용할 수 없는 경우 이 메서드는 즉시 반환합니다 null.
데이터그램은 일반적인 ReadableByteChannel#read(java.nio.ByteBuffer) read 작업처럼 현재 위치에서 시작하여 지정된 바이트 버퍼로 전송됩니다. 버퍼에 남아 있는 바이트가 데이터그램을 보유하는 데 필요한 바이트 수보다 적으면 나머지 데이터그램은 자동으로 삭제됩니다.
이 메서드는 클래스의 메서드와 java.net.DatagramSocket#receive receive 정확히 동일한 보안 검사를 수행합니다 java.net.DatagramSocket . 즉, 소켓이 특정 원격 주소에 연결되지 않고 보안 관리자가 설치된 경우 이 메서드가 수신한 각 데이터그램에 대해 이 메서드는 보안 관리자의 java.lang.SecurityManager#checkAccept checkAccept 메서드에서 원본의 주소와 포트 번호를 허용하는지 확인합니다. 이 보안 검사의 오버헤드는 먼저 메서드를 통해 #connect connect 소켓을 연결하여 방지할 수 있습니다.
이 메서드는 언제든지 호출될 수 있습니다. 그러나 다른 스레드가 이미 이 채널에서 읽기 작업을 시작한 경우 첫 번째 작업이 완료될 때까지 이 메서드 호출이 차단됩니다. 이 채널의 소켓이 바인딩되지 않은 경우 이 메서드는 먼저 매개 변수null를 사용하여 메서드를 호출하는 #bind bind 것처럼 소켓이 자동으로 할당된 주소에 바인딩됩니다.
에 대한 java.nio.channels.DatagramChannel.receive(java.nio.ByteBuffer)Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.