데이터그램 채널

데이터그램 채널 (DatagramChannel)

데이터그램 소켓용 선택 가능 채널이에요. UDP 같은 비연결형 프로토콜로 데이터그램을 보내고 받는 데 사용합니다.

출처: Java API Reference

본문

DatagramChannel은 데이터그램 소켓용 선택 가능 채널(selectable channel)이에요.

public abstract class DatagramChannel extends AbstractSelectableChannel
implements ByteChannel, ScatteringByteChannel, GatheringByteChannel, MulticastChannel

채널은 open() 정적 메서드로 만듭니다.

public static DatagramChannel open() throws IOException
public static DatagramChannel open(ProtocolFamily family) throws IOException

데이터그램을 보내고 받는 방법:

public abstract int send(ByteBuffer src, SocketAddress target) throws IOException
public abstract SocketAddress receive(ByteBuffer dst) throws IOException
public abstract DatagramChannel connect(SocketAddress remote) throws IOException
public abstract DatagramChannel disconnect() throws IOException
public abstract SocketAddress getRemoteAddress() throws IOException
  • send() — 지정한 주소로 데이터그램을 보내요.
  • receive() — 데이터그램을 받아요.
  • connect() — 연결된 모드로 전환해 대상 주소를 고정할 수 있어요(비연결형임에도).
  • disconnect() — 연결된 모드를 해제합니다.

또한 MulticastChannel을 구현하므로 멀티캐스트 그룹에 참여할 수 있어요. 선택 가능 채널이므로 Selector와 함께 사용할 수 있고, SelectorProvider로 얻습니다.

더 알아보기 (Learn more)