SocketFactory — 소켓 팩토리

SocketFactory — 소켓 팩토리

SocketFactory 클래스는 소켓을 만들어요. 특정 종류의 소켓 서브클래스를 만드는 다른 팩토리들이 이 클래스를 서브클래싱할 수 있고, 따라서 공개 소켓 수준 기능을 추가하기 위한 일반적인 프레임워크를 제공해요.

출처: Java API Reference

본문

소켓 팩토리는 구성되는 소켓에 관한 다양한 정책을 포착하는 간단한 방법이에요. 소켓을 요청하는 코드의 특별한 구성 없이도 그러한 소켓을 만들어요.

  • 팩토리와 소켓의 다형성 덕분에, 같은 애플리케이션 코드가 다른 종류의 팩토리를 전달받는 것만으로 다른 종류의 소켓을 사용할 수 있어요.
  • 팩토리는 소켓 생성에 사용되는 매개변수로 맞춤 설정될 수 있어요.

SocketFactory는 추상 클래스예요. 관련 메서드를 정리하면 다음과 같아요.

  • static SocketFactory getDefault() — 환경 특정 기본 소켓 팩토리를 반환해요.
  • Socket createSocket() — 바인딩되지 않거나 연결되지 않은 소켓을 만들어요. IOException이 발생할 수 있어요.
  • Socket createSocket(String host, int port) — 지정된 호스트와 포트에 연결된 소켓을 만들어요.
  • Socket createSocket(String host, int port, InetAddress localHost, int localPort) — 로컬 주소와 포트를 지정해요.
  • Socket createSocket(InetAddress host, int port)InetAddress로 호스트를 지정해요.
  • Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) — 양쪽 주소를 모두 지정해요.

소켓 생성을 추상화해 다양한 정책을 적용할 수 있게 해줘요. SSL 소켓 팩토리(SSLSocketFactory)가 대표적인 서브클래스예요.

더 알아보기 (Learn more)