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

クラスSocketImpl

  • すべての実装されたインタフェース:
    SocketOptions

    public abstract class SocketImpl
    extends Object
    implements SocketOptions
    抽象クラスSocketImplは、実際にソケットを実装するすべてのクラスに共通のスーパー・クラスです。 これはクライアント・ソケット、サーバー・ソケットの両方の作成に使用されます。

    「プレーンな」ソケットは、各メソッドを記述のとおりに実装します。ファイアウォールやプロキシは使用しません。

    導入されたバージョン:
    1.0
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      SocketImpl()  
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      protected abstract void accept​(SocketImpl s)
      接続を受け入れます。
      protected abstract int available()
      このソケットからブロックなしで読み込めるバイト数を返します。
      protected abstract void bind​(InetAddress host, int port)
      指定されたローカルのIPアドレスとポート番号にこのソケットをバインドします。
      protected abstract void close()
      このソケットを閉じます。
      protected abstract void connect​(String host, int port)
      指定されたホスト上の指定されたポートにこのソケットを接続します。
      protected abstract void connect​(InetAddress address, int port)
      指定されたホスト上の指定されたポートにこのソケットを接続します。
      protected abstract void connect​(SocketAddress address, int timeout)
      指定されたホスト上の指定されたポートにこのソケットを接続します。
      protected abstract void create​(boolean stream)
      ストリーム・ソケットまたはデータグラム・ソケットを作成します。
      protected FileDescriptor getFileDescriptor()
      このソケットのfdフィールドの値を返します。
      protected InetAddress getInetAddress()
      このソケットのaddressフィールドの値を返します。
      protected abstract InputStream getInputStream()
      このソケットの入力ストリームを返します。
      protected int getLocalPort()
      このソケットのlocalportフィールドの値を返します。
      protected <T> T getOption​(SocketOption<T> name)
      ソケット・オプションを取得するために呼び出されます。
      protected abstract OutputStream getOutputStream()
      このソケットの出力ストリームを返します。
      protected int getPort()
      このソケットのportフィールドの値を返します。
      protected abstract void listen​(int backlog)
      受信する接続(接続要求)を入れるキューの最大長を、count引数に設定します。
      protected abstract void sendUrgentData​(int data)
      このソケット上で1バイトの緊急データを送信します。
      protected <T> void setOption​(SocketOption<T> name, T value)
      ソケット・オプションを設定するために呼び出されます。
      protected void setPerformancePreferences​(int connectionTime, int latency, int bandwidth)
      このソケットのパフォーマンス設定を行います。
      protected void shutdownInput()
      このソケットの入力ストリームを「ストリームの終わり」に設定します。
      protected void shutdownOutput()
      このソケットの出力ストリームを無効にします。
      protected Set<SocketOption<?>> supportedOptions()
      このimplとthis implソケットでサポートされているSocketOptionsのセットを返します。(ソケットまたはServerSocket)
      protected boolean supportsUrgentData()
      このSocketImplが緊急データの送信をサポートするかどうかを返します。
      String toString()
      このソケットのアドレスとポートをStringとして返します。
    • フィールドの詳細

      • fd

        protected FileDescriptor fd
        このソケットのファイル記述子オブジェクトです。
      • address

        protected InetAddress address
        このソケットのリモート側のIPアドレスです。
      • port

        protected int port
        このソケットの接続先のリモート・ホスト上にあるポート番号です。
      • localport

        protected int localport
        このソケットの接続先のローカル・ポート番号です。
    • コンストラクタの詳細

      • SocketImpl

        public SocketImpl()
    • メソッドの詳細

      • create

        protected abstract void create​(boolean stream)
                                throws IOException
        ストリーム・ソケットまたはデータグラム・ソケットを作成します。
        パラメータ:
        stream - trueの場合はストリーム・ソケットを作成し、それ以外の場合はデータグラム・ソケットを作成します。
        例外:
        IOException−ソケットの作成中に入出力エラーが発生した場合。
      • connect

        protected abstract void connect​(String host,
                                        int port)
                                 throws IOException
        指定されたホスト上の指定されたポートにこのソケットを接続します。
        パラメータ:
        host−リモート・ホスト名。
        port - ポート番号。
        例外:
        IOException−リモート・ホストへの接続時に入出力エラーが発生した場合。
      • connect

        protected abstract void connect​(InetAddress address,
                                        int port)
                                 throws IOException
        指定されたホスト上の指定されたポートにこのソケットを接続します。
        パラメータ:
        address−リモート・ホストのIPアドレス。
        port - ポート番号。
        例外:
        IOException - 接続の試行中に入出力エラーが発生した場合。
      • connect

        protected abstract void connect​(SocketAddress address,
                                        int timeout)
                                 throws IOException
        指定されたホスト上の指定されたポートにこのソケットを接続します。 タイム・アウト0は無限のタイム・アウトとして解釈されます。 その後、接続が確立されるかエラーが発生するまで、接続がブロックされます。
        パラメータ:
        address−リモート・ホストのソケット・アドレス。
        timeout−タイム・アウト値(ミリ秒)。タイム・アウトなしの場合は0。
        例外:
        IOException - 接続の試行中に入出力エラーが発生した場合。
        導入されたバージョン:
        1.4
      • bind

        protected abstract void bind​(InetAddress host,
                                     int port)
                              throws IOException
        指定されたローカルのIPアドレスとポート番号にこのソケットをバインドします。
        パラメータ:
        host−ローカル・インタフェースに属するIPアドレス。
        port - ポート番号。
        例外:
        IOException−このソケットをバインドするときに入出力エラーが発生した場合。
      • listen

        protected abstract void listen​(int backlog)
                                throws IOException
        受信する接続(接続要求)を入れるキューの最大長を、count引数に設定します。 キューが埋まっているときに接続要求があると、接続は拒否されます。
        パラメータ:
        backlog−キューの最大長。
        例外:
        IOException−キューの生成中に入出力エラーが発生した場合。
      • accept

        protected abstract void accept​(SocketImpl s)
                                throws IOException
        接続を受け入れます。
        パラメータ:
        s−受け入れる接続。
        例外:
        IOException−接続の受け入れ中に入出力エラーが発生した場合。
      • getInputStream

        protected abstract InputStream getInputStream()
                                               throws IOException
        このソケットの入力ストリームを返します。
        戻り値:
        このソケットからの入力を読み込むためのストリーム。
        例外:
        IOException−入力ストリームの作成中に入出力エラーが発生した場合。
      • getOutputStream

        protected abstract OutputStream getOutputStream()
                                                 throws IOException
        このソケットの出力ストリームを返します。
        戻り値:
        このソケットに書き込むための出力ストリーム。
        例外:
        IOException−出力ストリームの作成中に入出力エラーが発生した場合。
      • available

        protected abstract int available()
                                  throws IOException
        このソケットからブロックなしで読み込めるバイト数を返します。
        戻り値:
        このソケットからブロックなしで読み込めるバイト数。
        例外:
        IOException−使用可能なバイト数の決定時に入出力エラーが発生した場合。
      • close

        protected abstract void close()
                               throws IOException
        このソケットを閉じます。
        例外:
        IOException - このソケットを閉じるときに入出力エラーが発生した場合。
      • shutdownInput

        protected void shutdownInput()
                              throws IOException
        このソケットの入力ストリームを「ストリームの終わり」に設定します。 このソケットに送信されたデータはすべて、確認されたあと何の通知もなく破棄されます。 ソケットでこのメソッドを呼び出した後にソケットの入力ストリームから読み込むと、ストリームのavailableメソッドは0を返し、readメソッドは-1 (ストリームの終わり)を返します。
        例外:
        IOException - このソケットを停止するときに入出力エラーが発生した場合。
        導入されたバージョン:
        1.3
        関連項目:
        Socket.shutdownOutput(), Socket.close(), Socket.setSoLinger(boolean, int)
      • shutdownOutput

        protected void shutdownOutput()
                               throws IOException
        このソケットの出力ストリームを無効にします。 TCPソケットの場合、それまでに書き込まれたデータのすべてが、TCPの通常の接続終了シーケンスに従って送信されます。 ソケットでshutdownOutput()を呼び出したあとにソケットの出力ストリームに書き込むと、ストリームはIOExceptionをスローします。
        例外:
        IOException - このソケットを停止するときに入出力エラーが発生した場合。
        導入されたバージョン:
        1.3
        関連項目:
        Socket.shutdownInput(), Socket.close(), Socket.setSoLinger(boolean, int)
      • getFileDescriptor

        protected FileDescriptor getFileDescriptor()
        このソケットのfdフィールドの値を返します。
        戻り値:
        このソケットのfdフィールドの値。
        関連項目:
        fd
      • getInetAddress

        protected InetAddress getInetAddress()
        このソケットのaddressフィールドの値を返します。
        戻り値:
        このソケットのaddressフィールドの値。
        関連項目:
        address
      • getPort

        protected int getPort()
        このソケットのportフィールドの値を返します。
        戻り値:
        このソケットのportフィールドの値。
        関連項目:
        port
      • supportsUrgentData

        protected boolean supportsUrgentData()
        このSocketImplが緊急データの送信をサポートするかどうかを返します。 このメソッドがサブクラス内でオーバーライドされていないかぎり、デフォルトではfalseが返されます。
        戻り値:
        緊急データがサポートされている場合はtrue
        導入されたバージョン:
        1.4
        関連項目:
        address
      • sendUrgentData

        protected abstract void sendUrgentData​(int data)
                                        throws IOException
        このソケット上で1バイトの緊急データを送信します。 送信されるバイトは、パラメータの下位8ビットです。
        パラメータ:
        data - 送信するデータのバイト
        例外:
        IOException - データ送信時にエラーが発生した場合。
        導入されたバージョン:
        1.4
      • getLocalPort

        protected int getLocalPort()
        このソケットのlocalportフィールドの値を返します。
        戻り値:
        このソケットのlocalportフィールドの値。
        関連項目:
        localport
      • toString

        public String toString()
        このソケットのアドレスとポートをStringとして返します。
        Overrides:
        toString 、クラス:  Object
        戻り値:
        このソケットの文字列表現。
      • setPerformancePreferences

        protected void setPerformancePreferences​(int connectionTime,
                                                 int latency,
                                                 int bandwidth)
        このソケットのパフォーマンス設定を行います。

        ソケットはデフォルトで、TCP/IPプロトコルを使用します。 実装によっては、TCP/IPとは異なるパフォーマンス特性を持つ代替プロトコルを提供することもあります。 アプリケーションは、このメソッドを使用することで、実装で利用可能なプロトコルの選択時に、これらのかね合いの取り方を示す独自の設定を表現できます。

        パフォーマンス設定は、接続時間の短さ、応答時間の速さ、および帯域幅の広さの相対的な重要度を示す3つの整数値によって記述されます。 これらの整数の絶対値は重要ではありません。ある特定のプロトコルを選択するために、これらの値が単純に比較されますが、その際、値が大きければより強い設定を示します。 負の値は正の値よりも低い優先順位を表します。 たとえば、アプリケーションが応答時間の速さや帯域幅の広さよりも接続時間の短さを優先する場合には、値(1, 0, 0)を指定してこのメソッドを呼び出すことができます。 アプリケーションが応答時間の速さよりも帯域幅の広さを優先し、接続時間の短さよりも応答時間の速さを優先する場合には、値(0, 1, 2)を指定してこのメソッドを呼び出すことができます。 デフォルトでは、サブクラスでオーバーライドされていない限り、このメソッドは何も行いません。

        パラメータ:
        connectionTime - 接続時間の短さの相対的な重要度を表すint
        latency - 応答時間の速さの相対的な重要度を表すint
        bandwidth - 帯域幅の広さの相対的な重要度を表すint
        導入されたバージョン:
        1.5
      • setOption

        protected <T> void setOption​(SocketOption<T> name,
                                     T value)
                              throws IOException
        ソケット・オプションを設定するために呼び出されます。
        型パラメータ:
        T - ソケット・オプション値のタイプ
        パラメータ:
        name - ソケット・オプション
        value - ソケット・オプションの値。 nullの値は、一部のオプションで有効です。
        例外:
        UnsupportedOperationException - SocketImplがオプションをサポートしない場合
        IOException - I/Oエラーが発生した場合、またはソケットが閉じられている場合。
        導入されたバージョン:
        9
      • getOption

        protected <T> T getOption​(SocketOption<T> name)
                           throws IOException
        ソケット・オプションを取得するために呼び出されます。
        型パラメータ:
        T - ソケット・オプション値のタイプ
        パラメータ:
        name - ソケット・オプション
        戻り値:
        指定されたオプションの値
        例外:
        UnsupportedOperationException - SocketImplがオプションをサポートしていない場合。
        IOException - I/Oエラーが発生した場合、またはソケットが閉じられている場合。
        導入されたバージョン:
        9
      • supportedOptions

        protected Set<SocketOption<?>> supportedOptions()
        このimplとthis implソケットでサポートされているSocketOptionsのセットを返します。(ソケットまたはServerSocket)
        戻り値:
        SocketOptionsのセット
        導入されたバージョン:
        9