モジュール java.base
パッケージ javax.net

クラスSocketFactory

  • 直系の既知のサブクラス:
    SSLSocketFactory

    public abstract class SocketFactory
    extends Object
    このクラスは、ソケットを作成します。 このクラスを別のファクトリのサブクラスに入れると、特定の種類のソケットが作成され、ソケット・レベルのpublic機能を追加するための汎用的なフレームワークが提供されます。

    ソケット・ファクトリを使うと、構築するソケットに関する一連のポリシーを簡単に取得し、ソケットを要求する特別なコード構成を必要としない方法でソケットを作成できます。

    • ファクトリとソケットに多相性があるため、同一アプリケーション・コードに種類の異なるファクトリを渡すだけで、そのコードでそれらのソケットを使用できる。
    • ソケット構築時に使用するパラメータを使って、ファクトリ自身をカスタマイズできます。 たとえば、ファクトリをカスタマイズして、異なるネットワーク・タイムアウトのソケットや、構成済みのセキュリティ・パラメータを返すことができます。
    • アプリケーションに返されるソケットをjava.net.Socketのサブクラスにすると、圧縮、セキュリティ、レコードのマーク付け、統計の収集、およびファイアウォールのトンネルなどの機能を、新しいAPIから直接使用できる。

    ファクトリ・クラスは、環境固有の構成メカニズムによって指定されます。 たとえば、getDefaultメソッドは、特定のユーザーまたはアプレットに適したファクトリを返すことができます。また、フレームワークは、特定の目的に合わせてカスタマイズされたファクトリを使用できます。

    導入されたバージョン:
    1.4
    関連項目:
    ServerSocketFactory
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected SocketFactory()
      SocketFactoryを作成します。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      Socket createSocket()
      接続されていないソケットを作成します。
      abstract Socket createSocket​(String host, int port)
      ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・ホストに接続します。
      abstract Socket createSocket​(String host, int port, InetAddress localHost, int localPort)
      ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・ホストに接続します。
      abstract Socket createSocket​(InetAddress host, int port)
      ソケットを作成し、指定されたアドレスの指定されたポート番号に接続します。
      abstract Socket createSocket​(InetAddress address, int port, InetAddress localAddress, int localPort)
      ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・アドレスに接続します。
      static SocketFactory getDefault()
      環境にデフォルトで提供されるソケット・ファクトリのコピーを返します。
    • コンストラクタの詳細

      • SocketFactory

        protected SocketFactory()
        SocketFactoryを作成します。
    • メソッドの詳細

      • getDefault

        public static SocketFactory getDefault()
        環境にデフォルトで提供されるソケット・ファクトリのコピーを返します。
        戻り値:
        デフォルトのSocketFactory
      • createSocket

        public abstract Socket createSocket​(String host,
                                            int port)
                                     throws IOException,
                                            UnknownHostException
        ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・ホストに接続します。 ソケットは、このファクトリに設定されているソケット・オプションを使用して構成されます。

        セキュリティ・マネージャが存在する場合、そのcheckConnectメソッドが、ホスト・アドレスとportを引数に指定して呼び出されます。 この結果、SecurityExceptionがスローされることがあります。

        パラメータ:
        host - 接続先のサーバー・ホスト名、またはループバック・アドレスの場合はnull
        port - サーバー・ポート
        戻り値:
        Socket
        例外:
        IOException - ソケットの作成時に入出力エラーが発生した場合。
        SecurityException - セキュリティ・マネージャが存在し、そのcheckConnectメソッドでこの操作が許可されていない場合。
        UnknownHostException - ホストが不明である場合
        IllegalArgumentException - portパラメータが指定された有効なポート値の範囲(0から65535)外である場合。
        関連項目:
        SecurityManager.checkConnect(java.lang.String, int), Socket(String, int)
      • createSocket

        public abstract Socket createSocket​(String host,
                                            int port,
                                            InetAddress localHost,
                                            int localPort)
                                     throws IOException,
                                            UnknownHostException
        ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・ホストに接続します。 このソケットは、指定されたローカル・アドレスとポートにバインドされます。 ソケットは、このファクトリに設定されているソケット・オプションを使用して構成されます。

        セキュリティ・マネージャが存在する場合、そのcheckConnectメソッドが、ホスト・アドレスとportを引数に指定して呼び出されます。 この結果、SecurityExceptionがスローされることがあります。

        パラメータ:
        host - 接続先のサーバー・ホスト名、またはループバック・アドレスの場合はnull
        port - サーバー・ポート
        localHost - ソケットのバインド先のローカル・アドレス
        localPort - ソケットのバインド先のローカル・ポート
        戻り値:
        Socket
        例外:
        IOException - ソケットの作成時に入出力エラーが発生した場合。
        SecurityException - セキュリティ・マネージャが存在し、そのcheckConnectメソッドでこの操作が許可されていない場合。
        UnknownHostException - ホストが不明である場合
        IllegalArgumentException - portパラメータまたはlocalPortパラメータが指定された有効なポート値の範囲(0から65535)外である場合。
        関連項目:
        SecurityManager.checkConnect(java.lang.String, int), Socket(String, int, java.net.InetAddress, int)
      • createSocket

        public abstract Socket createSocket​(InetAddress host,
                                            int port)
                                     throws IOException
        ソケットを作成し、指定されたアドレスの指定されたポート番号に接続します。 ソケットは、このファクトリに設定されているソケット・オプションを使用して構成されます。

        セキュリティ・マネージャが存在する場合、そのcheckConnectメソッドが、ホスト・アドレスとportを引数に指定して呼び出されます。 この結果、SecurityExceptionがスローされることがあります。

        パラメータ:
        host - サーバー・ホスト
        port - サーバー・ポート
        戻り値:
        Socket
        例外:
        IOException - ソケットの作成時に入出力エラーが発生した場合。
        SecurityException - セキュリティ・マネージャが存在し、そのcheckConnectメソッドでこの操作が許可されていない場合。
        IllegalArgumentException - portパラメータが指定された有効なポート値の範囲(0から65535)外である場合。
        NullPointerException - hostがnullである場合。
        関連項目:
        SecurityManager.checkConnect(java.lang.String, int), Socket(java.net.InetAddress, int)
      • createSocket

        public abstract Socket createSocket​(InetAddress address,
                                            int port,
                                            InetAddress localAddress,
                                            int localPort)
                                     throws IOException
        ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・アドレスに接続します。 このソケットは、指定されたローカル・アドレスとポートにバインドされます。 ソケットは、このファクトリに設定されているソケット・オプションを使用して構成されます。

        セキュリティ・マネージャが存在する場合、そのcheckConnectメソッドが、ホスト・アドレスとportを引数に指定して呼び出されます。 この結果、SecurityExceptionがスローされることがあります。

        パラメータ:
        address - サーバーのネットワーク・アドレス
        port - サーバー・ポート
        localAddress - クライアントのネットワーク・アドレス
        localPort - クライアント・ポート
        戻り値:
        Socket
        例外:
        IOException - ソケットの作成時に入出力エラーが発生した場合。
        SecurityException - セキュリティ・マネージャが存在し、そのcheckConnectメソッドでこの操作が許可されていない場合。
        IllegalArgumentException - portパラメータまたはlocalPortパラメータが指定された有効なポート値の範囲(0から65535)外である場合。
        NullPointerException - addressがnullである場合。
        関連項目:
        SecurityManager.checkConnect(java.lang.String, int), Socket(java.net.InetAddress, int, java.net.InetAddress, int)