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

クラスDatagramSocketImpl

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

public abstract class DatagramSocketImpl
extends Object
implements SocketOptions
抽象データグラムおよびマルチキャスト・ソケットを実装する基底クラスです。
実装上のノート:
DatagramSocketおよび MulticastSocketパブリック・コンストラクタで作成されたソケットは、従来、すべてのソケット操作を"PlainDatagramSocketImpl"という名前のDatagramSocketImpl実装に委任していました。 DatagramSocketおよびMulticastSocketは、DatagramChannelに基づいて新しい実装に変更されています。 JDKは、古い実装では引き続き出荷され、古い実装と新しい実装の間で異なる、未指定の動作に依存するコードの実行を可能にします。 古い実装が使用されるのは、Java仮想マシンが、古い実装を使用するためにシステム・プロパティjdk.net.usePlainDatagramSocketImplセットで起動された場合です。 これは、 ${java.home}/conf/net.propertiesにあるJDKネットワーク構成ファイルで設定することもできます。 プロパティ値は、ブール値の文字列表現です。 値を指定しないで設定した場合は、デフォルトで trueに設定されるため、-Djdk.net.usePlainDatagramSocketImplまたは-Djdk.net.usePlainDatagramSocketImpl=trueで実行されると、以前の実装を使用するようにJava仮想マシンが構成されます。 プロパティと古い実装は今後のバージョンで削除される予定です。
導入されたバージョン:
1.1
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    protected FileDescriptor fd
    ファイル記述子オブジェクトです。
    protected int localPort
    ローカル・ポート番号です。
  • コンストラクタのサマリー

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

    修飾子と型 メソッド 説明
    protected abstract void bind​(int lport, InetAddress laddr)
    データグラム・ソケットをローカルのポートおよびアドレスにバインドします。
    protected abstract void close()
    ソケットを閉じます。
    protected void connect​(InetAddress address, int port)
    データグラム・ソケットをリモート接続先に接続します。
    protected abstract void create()
    データグラム・ソケットを作成します。
    protected void disconnect()
    リモート接続先からデータグラム・ソケットを切り離します。
    protected FileDescriptor getFileDescriptor()
    データグラム・ソケットのファイル記述子を取得します。
    protected int getLocalPort()
    ローカル・ポートを取得します。
    protected <T> T getOption​(SocketOption<T> name)
    ソケット・オプションを取得するために呼び出されます。
    protected abstract int getTimeToLive()
    TTL (有効期間)オプションを取得します。
    protected abstract byte getTTL()
    非推奨。
    代わりにgetTimeToLiveを使用してください。
    protected abstract void join​(InetAddress inetaddr)
    マルチキャスト・グループに参加します。
    protected abstract void joinGroup​(SocketAddress mcastaddr, NetworkInterface netIf)
    マルチキャスト・グループに参加します。
    protected abstract void leave​(InetAddress inetaddr)
    マルチキャスト・グループから離れます。
    protected abstract void leaveGroup​(SocketAddress mcastaddr, NetworkInterface netIf)
    マルチキャスト・グループから離れます。
    protected abstract int peek​(InetAddress i)
    パケットを調べて、パケットの送信者を確認します。
    protected abstract int peekData​(DatagramPacket p)
    パケットを調べて、パケットの送信者を確認します。
    protected abstract void receive​(DatagramPacket p)
    データグラム・パケットを受信します。
    protected abstract void send​(DatagramPacket p)
    データグラム・パケットを送信します。
    protected <T> void setOption​(SocketOption<T> name, T value)
    ソケット・オプションを設定するために呼び出されます。
    protected abstract void setTimeToLive​(int ttl)
    TTL (有効期間)オプションを設定します。
    protected abstract void setTTL​(byte ttl)
    非推奨。
    代わりにsetTimeToLiveを使用してください。
    protected Set<SocketOption<?>> supportedOptions()
    このimplとthis implソケットでサポートされているSocketOptionsのセットを返します。(DatagramSocketまたはMulticastSocket)

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

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

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

    getOption, setOption
  • フィールド詳細

    • localPort

      protected int localPort
      ローカル・ポート番号です。
    • fd

      protected FileDescriptor fd
      ファイル記述子オブジェクトです。
  • コンストラクタの詳細

    • DatagramSocketImpl

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

    • create

      protected abstract void create() throws SocketException
      データグラム・ソケットを作成します。
      例外:
      SocketException - 使用しているプロトコルでエラー(TCPエラーなど)が発生した場合。
    • bind

      protected abstract void bind​(int lport, InetAddress laddr) throws SocketException
      データグラム・ソケットをローカルのポートおよびアドレスにバインドします。
      パラメータ:
      lport−ローカル・ポート
      laddr−ローカル・アドレス
      例外:
      SocketException - 使用しているプロトコルでエラー(TCPエラーなど)が発生した場合。
    • send

      protected abstract void send​(DatagramPacket p) throws IOException
      データグラム・パケットを送信します。 パケットには、データと、パケットの送信先アドレスとが含まれています。
      パラメータ:
      p−送信されるパケット。
      例外:
      IOException−データグラム・パケットの送信中に入出力例外が発生した場合。
      PortUnreachableException - 現在到達不可能になっている宛先にソケットが接続されている場合にスローされる可能性があります。 例外が必ずスローされるとは限らないことに注意。
    • connect

      protected void connect​(InetAddress address, int port) throws SocketException
      データグラム・ソケットをリモート接続先に接続します。 これは、リモート・アドレスをローカル・ソケットに関連付け、データグラムの送受信をこの接続先に対してだけ行えるようにします。 これをオーバーライドして、ネイティブのシステム接続が呼び出されるようにしてもかまいません。

      ソケットを接続するリモート接続先が存在しないか到達不可能の場合、およびそのアドレスに対するICMP転送先到達不能パケットを受信した場合は、以降の送信または受信呼出しでPortUnreachableExceptionがスローされることがあります。 例外が必ずスローされるとは限らないことに注意。

      パラメータ:
      address−接続先のリモートInetAddress
      port−リモート・ポート番号
      例外:
      SocketException−リモート接続先にソケットを接続できない場合にスローされる可能性があります。
      導入されたバージョン:
      1.4
    • disconnect

      protected void disconnect()
      リモート接続先からデータグラム・ソケットを切り離します。
      導入されたバージョン:
      1.4
    • peek

      protected abstract int peek​(InetAddress i) throws IOException
      パケットを調べて、パケットの送信者を確認します。 指定されたInetAddressをパケットの送信元アドレスで更新します。
      パラメータ:
      i−InetAddressオブジェクト
      戻り値:
      パケットの送信元ポート番号。
      例外:
      IOException - 入出力例外が発生した場合
      PortUnreachableException - 現在到達不可能になっている宛先にソケットが接続されている場合にスローされる可能性があります。 例外が必ずスローされるとは限らないことに注意。
    • peekData

      protected abstract int peekData​(DatagramPacket p) throws IOException
      パケットを調べて、パケットの送信者を確認します。 指定されたDatagramPacketにデータがコピーされます。 データは返されますが使用されません。したがって、その後のPeekDataまたは受信操作では同じデータを確認します。
      パラメータ:
      p - 受信したパケット。
      戻り値:
      パケットの送信元ポート番号。
      例外:
      IOException - 入出力例外が発生した場合
      PortUnreachableException - 現在到達不可能になっている宛先にソケットが接続されている場合にスローされる可能性があります。 例外が必ずスローされるとは限らないことに注意。
      導入されたバージョン:
      1.4
    • receive

      protected abstract void receive​(DatagramPacket p) throws IOException
      データグラム・パケットを受信します。
      パラメータ:
      p - 受信したパケット。
      例外:
      IOException−データグラム・パケットの受信中に入出力例外が発生した場合。
      PortUnreachableException - 現在到達不可能になっている宛先にソケットが接続されている場合にスローされる可能性があります。 例外が必ずスローされるとは限らないことに注意。
    • setTTL

      @Deprecatedprotected abstract void setTTL​(byte ttl) throws IOException
      非推奨。
      代わりにsetTimeToLiveを使用してください。
      TTL (有効期間)オプションを設定します。
      パラメータ:
      ttl−TTL値を指定するバイト
      例外:
      IOException - 有効期間オプションの設定中に入出力例外が発生した場合。
      関連項目:
      getTTL()
    • getTTL

      @Deprecated protected abstract byte getTTL() throws IOException
      非推奨。
      代わりにgetTimeToLiveを使用してください。
      TTL (有効期間)オプションを取得します。
      戻り値:
      TTL値を表すバイト
      例外:
      IOException - 有効期間オプションの取得中に入出力例外が発生した場合
      関連項目:
      setTTL(byte)
    • setTimeToLive

      protected abstract void setTimeToLive​(int ttl) throws IOException
      TTL (有効期間)オプションを設定します。
      パラメータ:
      ttl−有効期間値を指定するint
      例外:
      IOException - 有効期間オプションの設定中に入出力例外が発生した場合。
      関連項目:
      getTimeToLive()
    • getTimeToLive

      protected abstract int getTimeToLive() throws IOException
      TTL (有効期間)オプションを取得します。
      戻り値:
      有効期間値を表すint
      例外:
      IOException - 有効期間オプションの取得中に入出力例外が発生した場合
      関連項目:
      setTimeToLive(int)
    • join

      protected abstract void join​(InetAddress inetaddr) throws IOException
      マルチキャスト・グループに参加します。
      パラメータ:
      inetaddr−参加するマルチキャスト・アドレス。
      例外:
      IOException−マルチキャスト・グループへの参加中に入出力例外が発生した場合。
    • leave

      protected abstract void leave​(InetAddress inetaddr) throws IOException
      マルチキャスト・グループから離れます。
      パラメータ:
      inetaddr−離れるマルチキャスト・アドレス。
      例外:
      IOException−マルチキャスト・グループから離れる際に入出力例外が発生した場合。
    • joinGroup

      protected abstract void joinGroup​(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
      マルチキャスト・グループに参加します。
      パラメータ:
      mcastaddr−参加に使用するアドレス。
      netIf−マルチキャスト・データグラム・パケットを受信するローカル・インタフェースを指定
      例外:
      IOException−マルチキャスト・グループへの参加中に入出力例外が発生した場合
      導入されたバージョン:
      1.4
    • leaveGroup

      protected abstract void leaveGroup​(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
      マルチキャスト・グループから離れます。
      パラメータ:
      mcastaddr−離れるアドレス。
      netIf−グループを離れるローカル・インタフェースを指定
      例外:
      IOException−マルチキャスト・グループから離れる際に入出力例外が発生した場合
      導入されたバージョン:
      1.4
    • close

      protected abstract void close()
      ソケットを閉じます。
    • getLocalPort

      protected int getLocalPort()
      ローカル・ポートを取得します。
      戻り値:
      ローカル・ポートの値を表すint
    • getFileDescriptor

      protected FileDescriptor getFileDescriptor()
      データグラム・ソケットのファイル記述子を取得します。
      戻り値:
      データグラム・ソケットのファイル記述子を表すFileDescriptorオブジェクト
    • setOption

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

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

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