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