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

クラスSocketImpl

java.lang.Object
java.net.SocketImpl
すべての実装されたインタフェース:
SocketOptions

public abstract class SocketImpl extends Object implements SocketOptions
抽象クラスSocketImplは、実際にソケットを実装するすべてのクラスに共通のスーパー・クラスです。 これはクライアント・ソケット、サーバー・ソケットの両方の作成に使用されます。
実装上のノート:
SocketおよびSocketServerパブリック・コンストラクタで作成されたクライアントおよびサーバー・ソケットは、システム・デフォルトのSocketImplを作成します。 JDKの以前は、新しい実装で置き換えられてから、"PlainSocketImpl"というSocketImpl実装タイプを使用しました。 JDKは、古い実装では引き続き出荷され、古い実装と新しい実装の間で異なる、未指定の動作に依存するコードの実行を可能にします。 古い実装が使用されるのは、Java仮想マシンが、古い実装を使用するためにシステム・プロパティjdk.net.usePlainSocketImplセットで起動された場合です。 これは、 ${java.home}/conf/net.propertiesにあるJDKネットワーク構成ファイルで設定することもできます。 プロパティ値は、ブール値の文字列表現です。 値を指定しないで設定した場合は、デフォルトで trueに設定されるため、-Djdk.net.usePlainSocketImplまたは -Djdk.net.usePlainSocketImpl=trueで実行されると、以前の実装を使用するようにJava仮想マシンが構成されます。 プロパティと古い実装は今後のバージョンで削除される予定です。
導入されたバージョン:
1.0
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected InetAddress
    このソケットのリモート側のIPアドレスです。
    protected FileDescriptor
    このソケットのファイル記述子オブジェクトです。
    protected int
    このソケットの接続先のローカル・ポート番号です。
    protected int
    このソケットの接続先のリモート・ホスト上にあるポート番号です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    このクラスの新しいインスタンスを初期化します
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected abstract void
    接続を受け入れます。
    protected abstract int
    このソケットからブロックなしで読み込めるバイト数を返します。
    protected abstract void
    bind​(InetAddress host, int port)
    指定されたローカルのIPアドレスとポート番号にこのソケットをバインドします。
    protected abstract void
    このソケットを閉じます。
    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
    このソケットのfdフィールドの値を返します。
    protected InetAddress
    このソケットのaddressフィールドの値を返します。
    protected abstract InputStream
    このソケットの入力ストリームを返します。
    protected int
    このソケットのlocalportフィールドの値を返します。
    protected <T> T
    getOption​(SocketOption<T> name)
    ソケット・オプションを取得するために呼び出されます。
    protected abstract OutputStream
    このソケットの出力ストリームを返します。
    protected int
    このソケットの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
    このソケットの入力ストリームを「ストリームの終わり」に設定します。
    protected void
    このソケットの出力ストリームを無効にします。
    protected Set<SocketOption<?>>
    このimplとthis implソケットでサポートされているSocketOptionsのセットを返します。(ソケットまたはServerSocket)
    protected boolean
    このSocketImplが緊急データの送信をサポートするかどうかを返します。
    このソケットのアドレスとポートをStringとして返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    インタフェース java.net.SocketOptionsで宣言されたメソッド

    getOption, setOption
  • フィールド詳細

    • 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として返します。
      オーバーライド:
      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
      ソケット・オプションを設定するために呼び出されます。
      実装要件:
      このメソッドのデフォルト実装では、最初に指定のソケット・オプションのnameがnullでないことがチェックされた後、 UnsupportedOperationExceptionがスローされます。 サブクラスは、このメソッドを適切な実装でオーバーライドする必要があります。
      型パラメータ:
      T - ソケット・オプション値のタイプ
      パラメータ:
      name - ソケット・オプション
      value - ソケット・オプションの値。 nullの値は、一部のオプションで有効です。
      例外:
      UnsupportedOperationException - SocketImplがオプションをサポートしない場合
      IllegalArgumentException - 値がオプションに対して有効でない場合
      IOException - I/Oエラーが発生した場合またはソケットが閉じられた場合
      NullPointerException - nameがnullの場合
      導入されたバージョン:
      9
    • getOption

      protected <T> T getOption(SocketOption<T> name) throws IOException
      ソケット・オプションを取得するために呼び出されます。
      実装要件:
      このメソッドのデフォルト実装では、最初に指定のソケット・オプションのnameがnullでないことがチェックされた後、 UnsupportedOperationExceptionがスローされます。 サブクラスは、このメソッドを適切な実装でオーバーライドする必要があります。
      型パラメータ:
      T - ソケット・オプション値のタイプ
      パラメータ:
      name - ソケット・オプション
      戻り値:
      指定されたオプションの値
      例外:
      UnsupportedOperationException - SocketImplがオプションをサポートしない場合
      IOException - I/Oエラーが発生した場合またはソケットが閉じられた場合
      NullPointerException - nameがnullの場合
      導入されたバージョン:
      9
    • supportedOptions

      protected Set<SocketOption<?>> supportedOptions()
      このimplとthis implソケットでサポートされているSocketOptionsのセットを返します。(ソケットまたはServerSocket)
      実装要件:
      このメソッドのデフォルトの実装では、空のセットが返されます。 サブクラスは、このメソッドを適切な実装でオーバーライドする必要があります。
      戻り値:
      SocketOptionsのセット
      導入されたバージョン:
      9