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
ローカル・ポート番号です。インタフェース java.net.SocketOptionsで宣言されたフィールド
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_REUSEPORT, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 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
−接続先のリモートInetAddressport
−リモート・ポート番号- 例外:
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 IOExceptionTTL (有効期間)オプションを設定します。- パラメータ:
ttl
−有効期間値を指定するint
- 例外:
IOException
- 有効期間オプションの設定中に入出力例外が発生した場合。- 関連項目:
getTimeToLive()
-
getTimeToLive
protected abstract int getTimeToLive() throws IOExceptionTTL (有効期間)オプションを取得します。- 戻り値:
- 有効期間値を表す
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
-