서버 소켓 채널

서버 소켓 채널 (ServerSocketChannel)

스트림 지향 리스닝 소켓을 위한 선택 가능 채널이에요. 클라이언트 연결을 수락하는 서버 역할을 합니다.

출처: Java API Reference

본문

ServerSocketChannel은 스트림 지향 리스닝 소켓을 위한 선택 가능 채널이에요. 서버 소켓 채널은 open() 메서드로 만듭니다.

public abstract class ServerSocketChannel extends AbstractSelectableChannel
implements NetworkChannel
public static ServerSocketChannel open() throws IOException
public static ServerSocketChannel open(ProtocolFamily family) throws IOException

새로 만든 서버 소켓 채널은 열려 있지만 아직 바인딩되지 않았어요. 바인딩되지 않은 채널에서 accept()를 호출하면 NotYetBoundException이 던져집니다. bind() 메서드로 바인딩할 수 있어요.

public abstract ServerSocketChannel bind(SocketAddress local, int backlog) throws IOException
public abstract SocketChannel accept() throws IOException
public abstract SocketAddress getLocalAddress() throws IOException
public abstract ServerSocket socket()
public abstract <T> ServerSocketChannel setOption(SocketOption<T> name, T value) throws IOException
  • accept() — 들어오는 연결을 수락하고 새 SocketChannel을 반환해요.
  • bind() — 로컬 주소에 바인딩하고 백로그 크기를 지정할 수 있어요.
  • setOption()SO_RCVBUF, SO_REUSEADDR 같은 소켓 옵션을 설정합니다.

서버 소켓 채널은 여러 동시 스레드가 사용하기에 안전해요.

더 알아보기 (Learn more)