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
address
このソケットのリモート側のIPアドレスです。protected FileDescriptor
fd
このソケットのファイル記述子オブジェクトです。protected int
localport
このソケットの接続先のローカル・ポート番号です。protected int
port
このソケットの接続先のリモート・ホスト上にあるポート番号です。インタフェース 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
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 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
として返します。 -
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
-