- すべての実装されたインタフェース:
- Closeable,- AutoCloseable
- 直系の既知のサブクラス:
- SSLServerSocket
public class ServerSocket extends Object implements Closeable
 サーバー・ソケットの実際の処理は、SocketImplクラスのインスタンスによって実行されます。 アプリケーションは、ソケット実装を作成するソケット・ファクトリを変更することで、ローカル・ファイアウォールに適したソケットを作成するようにアプリケーション自体を構成することができます。 
 
 ServerSocketクラスは、複数のソケット・オプションを設定および取得するための便利なメソッドを定義します。 このクラスは、ソケット・オプションを設定および問合せするsetOptionメソッドとgetOptionメソッドも定義します。 ServerSocketでは、次のオプションがサポートされています: 
 
追加(実装固有)のオプションをサポートできる場合もあります。
オプション名 説明 SO_RCVBUFソケット受信バッファのサイズ SO_REUSEADDRアドレスを再利用します 
- 導入されたバージョン:
- 1.0
- 関連項目:
- SocketImpl,- setSocketFactory(java.net.SocketImplFactory),- ServerSocketChannel
- 
コンストラクタのサマリーコンストラクタ 修飾子 コンストラクタ 説明 ServerSocket()アンバウンドのサーバー・ソケットを作成します。ServerSocket(int port)指定されたポートにバインドされたサーバー・ソケットを作成します。ServerSocket(int port, int backlog)サーバー・ソケットを作成し、指定されたローカル・ポート番号にバインドし、指定されたバックログを設定します。ServerSocket(int port, int backlog, InetAddress bindAddr)指定されたポート、待機バックログ、およびバインド先のローカルIPアドレスを使ってサーバーを作成します。protectedServerSocket(SocketImpl impl)ユーザー指定のSocketImplでサーバー・ソケットを作成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 Socketaccept()このソケットに対する接続要求を待機し、それを受け取ります。voidbind(SocketAddress endpoint)ServerSocketを特定のアドレス(IPアドレスおよびポート番号)にバインドします。voidbind(SocketAddress endpoint, int backlog)ServerSocketを特定のアドレス(IPアドレスおよびポート番号)にバインドします。voidclose()このソケットを閉じます。ServerSocketChannelgetChannel()このソケットに関連付けられた一意のServerSocketChannelオブジェクトを返します(存在する場合)。InetAddressgetInetAddress()このサーバー・ソケットのローカル・アドレスを返します。intgetLocalPort()このソケットが接続を待機中のポート番号を返します。SocketAddressgetLocalSocketAddress()このソケットのバインド先の端点のアドレスを返します。<T> TgetOption(SocketOption<T> name)ソケット・オプションの値を返します。intgetReceiveBufferSize()このServerSocketで使われるSO_RCVBUFオプションの値を取得します。これは、このServerSocketから受け取るソケットに使用される推奨バッファ・サイズです。booleangetReuseAddress()SO_REUSEADDRが有効かどうかを調べます。intgetSoTimeout()Retrieve setting forSO_TIMEOUT.このオプションが無効(タイム・アウトが無限)の場合は0を返します。protected voidimplAccept(Socket s)ServerSocketのサブクラスは、このメソッドを使ってaccept()をオーバーライドすることで、独自のサブクラスのソケットが返されるようにします。booleanisBound()ServerSocketのバインディング状態を返します。booleanisClosed()ServerSocketの閉じた状態を返します。<T> ServerSocketsetOption(SocketOption<T> name, T value)ソケット・オプションの値を設定します。voidsetPerformancePreferences(int connectionTime, int latency, int bandwidth)このServerSocketのパフォーマンス設定を行います。voidsetReceiveBufferSize(int size)このServerSocketから受け入れられたソケットのSO_RCVBUFオプションのデフォルト推奨値を設定します。voidsetReuseAddress(boolean on)SO_REUSEADDRソケット・オプションを有効または無効にします。static voidsetSocketFactory(SocketImplFactory fac)アプリケーションのサーバー・ソケット実装ファクトリを設定します。voidsetSoTimeout(int timeout)指定されたタイムアウト(ミリ秒)を使ってSO_TIMEOUTを有効または無効にします。Set<SocketOption<?>>supportedOptions()このサーバー・ソケットでサポートされているソケット・オプションのセットを返します。StringtoString()このソケットの実装アドレスと実装ポートをStringとして返します。
- 
コンストラクタの詳細- 
ServerSocketprotected ServerSocket(SocketImpl impl)ユーザー指定のSocketImplでサーバー・ソケットを作成します。- パラメータ:
- impl- ServerSocketで使用するSocketImplのインスタンス。
- 例外:
- NullPointerException- implが- nullの場合。
- SecurityException- セキュリティ・マネージャが設定されていて、その- checkPermissionメソッドが- NetPermission("setSocketImpl")を許可していない場合。
- 導入されたバージョン:
- 12
 
- 
ServerSocketpublic ServerSocket() throws IOExceptionアンバウンドのサーバー・ソケットを作成します。- 例外:
- IOException−ソケットを開くときの入出力エラー。
 
- 
ServerSocketpublic ServerSocket(int port) throws IOException指定されたポートにバインドされたサーバー・ソケットを作成します。 ポート番号0は、そのポート番号が自動的に(通常は一時ポート範囲から)割り当てられたことを意味します。 このポート番号を取得するには、getLocalPortを呼び出します。受信する接続(接続要求)のキューの最大長は、 50に設定されます。 キューが埋まっているときに接続要求があると、接続は拒否されます。アプリケーションがサーバー・ソケット実装ファクトリを指定している場合、そのファクトリ createSocketImplメソッドが呼び出されて実際のソケット実装が作成されます。 そうでない場合は、システムにデフォルトのソケット実装が作成されます。セキュリティ・マネージャが存在する場合、この操作が許可されるように、その checkListenメソッドがport引数をその引数として指定して呼び出されます。 この結果、SecurityExceptionがスローされることがあります。- パラメータ:
- port- ポート番号、または自動的に割り当てられたポート番号を使用する場合は- 0。
- 例外:
- IOException- ソケットを開いているときに入出力エラーが発生した場合。
- SecurityException- セキュリティ・マネージャが存在し、その- checkListenメソッドでこの操作が許可されていない場合。
- IllegalArgumentException- portパラメータが指定された有効なポート値の範囲(0から65535)外である場合。
- 関連項目:
- SocketImpl,- SocketImplFactory.createSocketImpl(),- setSocketFactory(java.net.SocketImplFactory),- SecurityManager.checkListen(int)
 
- 
ServerSocketpublic ServerSocket(int port, int backlog) throws IOExceptionサーバー・ソケットを作成し、指定されたローカル・ポート番号にバインドし、指定されたバックログを設定します。 ポート番号0は、そのポート番号が自動的に(通常は一時ポート範囲から)割り当てられたことを意味します。 このポート番号を取得するには、getLocalPortを呼び出します。受信する接続(接続要求)のキューの最大長は、 backlogパラメータに設定されます。 キューが埋まっているときに接続要求があると、接続は拒否されます。アプリケーションがサーバー・ソケット実装ファクトリを指定している場合、そのファクトリ createSocketImplメソッドが呼び出されて実際のソケット実装が作成されます。 そうでない場合は、システムにデフォルトのソケット実装が作成されます。セキュリティ・マネージャが存在する場合、この操作が許可されるように、その checkListenメソッドがport引数をその引数として指定して呼び出されます。 この結果、SecurityExceptionがスローされることがあります。backlog引数は、ソケットの保留されている接続の要求された最大数です。 正確なセマンティックスは実装に固有です。 特に、実装には最大長がかかる場合や、パラメータをすべて無視することを選択できる場合があります。 指定される値は0より大きくなければいけません。0以下の場合は、実装固有のデフォルトが使用されます。- パラメータ:
- port- ポート番号、または自動的に割り当てられたポート番号を使用する場合は- 0。
- backlog- 着信接続のキューの要求された最大長。
- 例外:
- IOException- ソケットを開いているときに入出力エラーが発生した場合。
- SecurityException- セキュリティ・マネージャが存在し、その- checkListenメソッドでこの操作が許可されていない場合。
- IllegalArgumentException- portパラメータが指定された有効なポート値の範囲(0から65535)外である場合。
- 関連項目:
- SocketImpl,- SocketImplFactory.createSocketImpl(),- setSocketFactory(java.net.SocketImplFactory),- SecurityManager.checkListen(int)
 
- 
ServerSocketpublic ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException指定されたポート、待機バックログ、およびバインド先のローカルIPアドレスを使ってサーバーを作成します。 複数ホームのホストの場合は、bindAddr引数を使用すれば、特定のアドレスに対する接続要求だけを受信するServerSocketを作成できます。 bindAddrがnullの場合、これはデフォルトで、任意の(すべての)ローカル・アドレス上の接続を受け入れます。 ポートは0から65535まででなければいけません。 ポート番号0は、そのポート番号が自動的に(通常は一時ポート範囲から)割り当てられたことを意味します。 このポート番号を取得するには、getLocalPortを呼び出します。セキュリティ・マネージャが存在する場合、このメソッドによってその checkListenメソッドがport引数をその引数として指定して呼び出され、この操作が許可されるかどうかが確認されます。 この結果、SecurityExceptionがスローされることがあります。backlog引数は、ソケットの保留されている接続の要求された最大数です。 正確なセマンティックスは実装に固有です。 特に、実装には最大長がかかる場合や、パラメータをすべて無視することを選択できる場合があります。 指定される値は0より大きくなければいけません。0以下の場合は、実装固有のデフォルトが使用されます。- パラメータ:
- port- ポート番号、または自動的に割り当てられたポート番号を使用する場合は- 0。
- backlog- 着信接続のキューの要求された最大長。
- bindAddr−サーバーをバインドするローカルInetAddress
- 例外:
- SecurityException- セキュリティ・マネージャが存在し、その- checkListenメソッドでこの操作が許可されていない場合。
- IOException- ソケットを開いているときに入出力エラーが発生した場合。
- IllegalArgumentException- portパラメータが指定された有効なポート値の範囲(0から65535)外である場合。
- 導入されたバージョン:
- 1.1
- 関連項目:
- SocketOptions,- SocketImpl,- SecurityManager.checkListen(int)
 
 
- 
- 
メソッドの詳細- 
bindpublic void bind(SocketAddress endpoint) throws IOExceptionServerSocketを特定のアドレス(IPアドレスおよびポート番号)にバインドします。アドレスが nullの場合は、システムにより一時的なポートと有効なローカル・アドレスが選択されてソケットがバインドされます。- パラメータ:
- endpoint- バインド先のIPアドレスおよびポート番号。
- 例外:
- IOException- バインド操作に失敗した場合、あるいはソケットがすでにバインドされている場合。
- SecurityException-- SecurityManagerが存在し、その- checkListenメソッドがこの操作を許可しない場合。
- IllegalArgumentException- 端点が、このソケットによってサポートされていないSocketAddressサブクラスである場合。
- 導入されたバージョン:
- 1.4
 
- 
bindpublic void bind(SocketAddress endpoint, int backlog) throws IOExceptionServerSocketを特定のアドレス(IPアドレスおよびポート番号)にバインドします。アドレスが nullの場合は、システムにより一時的なポートと有効なローカル・アドレスが選択されてソケットがバインドされます。backlog引数は、ソケットの保留されている接続の要求された最大数です。 正確なセマンティックスは実装に固有です。 特に、実装には最大長がかかる場合や、パラメータをすべて無視することを選択できる場合があります。 指定される値は0より大きくなければいけません。0以下の場合は、実装固有のデフォルトが使用されます。- パラメータ:
- endpoint- バインド先のIPアドレスおよびポート番号。
- backlog- 着信接続のキューの要求された最大長。
- 例外:
- IOException- バインド操作に失敗した場合、あるいはソケットがすでにバインドされている場合。
- SecurityException-- SecurityManagerが存在し、その- checkListenメソッドがこの操作を許可しない場合。
- IllegalArgumentException- 端点が、このソケットによってサポートされていないSocketAddressサブクラスである場合。
- 導入されたバージョン:
- 1.4
 
- 
getInetAddresspublic InetAddress getInetAddress()このサーバー・ソケットのローカル・アドレスを返します。ソケットが 閉じられる前にバインドされていた場合、このメソッドはソケットが閉じられたあとも引き続きローカル・アドレスを返します。セキュリティ・マネージャが設定されている場合は、セキュリティ・マネージャの checkConnectメソッドがローカル・アドレスおよび-1を引数として呼び出され、操作が許可されるかどうかが確認されます。 この操作が許可されない場合は、ループバック・アドレスが返されます。- 戻り値:
- このソケットのバインド先アドレス。セキュリティ・マネージャによって拒否された場合はループバック・アドレス。ソケットがバインドされていない場合はnull。
- 関連項目:
- SecurityManager.checkConnect(java.lang.String, int)
 
- 
getLocalPortpublic int getLocalPort()このソケットが接続を待機中のポート番号を返します。ソケットが 閉じられる前にバインドされていた場合、このメソッドはソケットが閉じられたあとも引き続きポート番号を返します。- 戻り値:
- このソケットが待機するポート番号。ソケットがまだバインドされていない場合は -1。
 
- 
getLocalSocketAddresspublic SocketAddress getLocalSocketAddress()このソケットのバインド先の端点のアドレスを返します。ソケットが 閉じられる前にバインドされていた場合、このメソッドはソケットが閉じられたあとも引き続き端点のアドレスを返します。セキュリティ・マネージャが設定されている場合は、セキュリティ・マネージャの checkConnectメソッドがローカル・アドレスおよび-1を引数として呼び出され、操作が許可されるかどうかが確認されます。 この操作が許可されない場合は、ループバック・アドレスを表すSocketAddressと、ソケットのバインド先であるローカル・ポートが返されます。- 戻り値:
- このソケットのローカル端点を表すSocketAddress。セキュリティ・マネージャによって拒否された場合はループバック・アドレスを表すSocketAddress。ソケットがまだバインドされていない場合はnull。
- 導入されたバージョン:
- 1.4
- 関連項目:
- getInetAddress(),- getLocalPort(),- bind(SocketAddress),- SecurityManager.checkConnect(java.lang.String, int)
 
- 
acceptpublic Socket accept() throws IOExceptionこのソケットに対する接続要求を待機し、それを受け取ります。 このメソッドは接続が行われるまでブロックされます。新しいソケット sが作成され、セキュリティ・マネージャが存在する場合には、そのcheckAcceptメソッドが引数としてs.getInetAddress().getHostAddress()およびs.getPort()を指定して呼び出され、この操作の実行が許可されていることが確認されます。 この結果、SecurityExceptionがスローされることがあります。- 実装上のノート:
- システム・デフォルトSocketImplを使用するこのクラスのインスタンスは、「クライアント・ソケット実装ファクトリ」が設定されている場合、「クライアント・ソケット実装ファクトリ」に関係なく、同じ型のSocketImplを使用したソケットを受け入れます。
- 戻り値:
- 新しいソケット
- 例外:
- IOException- 接続の待機中に入出力エラーが発生した場合。
- SecurityException- セキュリティ・マネージャが存在し、その- checkAcceptメソッドでこの操作が許可されていない場合。
- SocketTimeoutException−以前にsetSoTimeoutを使ってタイム・アウトが設定されていて、そのタイム・アウトに達した場合。
- IllegalBlockingModeException−このソケットに関連するチャネルが存在し、そのチャネルが非ブロッキング・モードであり、受け入れ準備の整った接続が存在しない場合
- 関連項目:
- SecurityManager.checkAccept(java.lang.String, int)
 
- 
implAcceptprotected final void implAccept(Socket s) throws IOExceptionServerSocketのサブクラスは、このメソッドを使ってaccept()をオーバーライドすることで、独自のサブクラスのソケットが返されるようにします。 そのため、通常、FooServerSocketではこのメソッドを新しく作成された、バインドされていない、FooSocketが使用します。 implAcceptから戻ると、そのFooSocketがクライアントに接続されます。このメソッドの動作は、新しく作成およびバインドされていないソケットを使用して呼び出された場合は未指定です。 このメソッドを呼び出す前に指定されたソケットに設定されたソケット・オプションは、接続が受け入れられるときに保持される場合と保持されない場合があります。 このソケットに1つの型の SocketImplがあり、指定されたソケットにまったく別の型のSocketImplがある場合は、接続を受け入れることができない可能性があります。- 実装上のノート:
- システム・デフォルトSocketImplを使用したこのクラスのインスタンスは、同じタイプのSocketImplを使用したソケットとの接続を受け入れることができます:IOExceptionは、ソケットがカスタムSocketImplを使用している場合にスローされます。 カスタムSocketImplを使用するこのクラスのインスタンスは、システム・デフォルトのSocketImplを使用したソケットとの接続を受け付けることはできません。
- パラメータ:
- s−ソケット
- 例外:
- IllegalBlockingModeException- このソケットに関連するチャネルが存在し、そのチャネルが非ブロック・モードである場合。
- IOException- 接続の待機時にI/Oエラーが発生した場合、またはこのソケットが指定されたソケットとの接続を受け入れることができない場合。
- 導入されたバージョン:
- 1.1
 
- 
closepublic void close() throws IOExceptionこのソケットを閉じます。accept()で現在ブロックされているすべてのスレッドがSocketExceptionをスローします。このソケットに関連するチャネルが存在する場合は、そのチャネルも閉じられます。 - 定義:
- close、インタフェース:- AutoCloseable
- 定義:
- close、インタフェース:- Closeable
- 例外:
- IOException- ソケットを閉じるときに入出力エラーが発生した場合。
 
- 
getChannelpublic ServerSocketChannel getChannel()このソケットに関連付けられた一意のServerSocketChannelオブジェクトを返します(存在する場合)。チャネル自体が ServerSocketChannel.openメソッドを使用して作成された場合にだけ、サーバー・ソケットにチャネルが存在します。- 戻り値:
- このソケットに関連付けられたサーバー・ソケット・チャネル。このソケットがチャネル用に作成されたものでない場合はnull
- 導入されたバージョン:
- 1.4
 
- 
isBoundpublic boolean isBound()ServerSocketのバインディング状態を返します。ソケットがclosedとなる前にバインドされていた場合、このメソッドはソケットが閉じられた後も引き続き trueを返します。- 戻り値:
- ServerSocketが正常にアドレスにバインドされている場合はtrue
- 導入されたバージョン:
- 1.4
 
- 
isClosedpublic boolean isClosed()ServerSocketの閉じた状態を返します。- 戻り値:
- ソケットが閉じた場合はtrue
- 導入されたバージョン:
- 1.4
 
- 
setSoTimeoutpublic void setSoTimeout(int timeout) throws SocketException指定されたタイムアウト(ミリ秒)を使ってSO_TIMEOUTを有効または無効にします。 このオプションを正のタイムアウト値に設定すると、このServerSocketに対するaccept()の呼出しは、この時間だけブロックされます。 タイム・アウトの期限が切れると、ServerSocketがまだ有効であってもjava.net.SocketTimeoutExceptionが発行されます。 タイム・アウト0は無限のタイム・アウトとして解釈されます。 このオプションは、ブロック処理に入る前に有効にしておく必要があります。- パラメータ:
- timeout−ミリ秒で表される、指定されたタイム・アウト
- 例外:
- SocketException- 使用しているプロトコルでエラー(TCPエラーなど)が発生した場合
- IllegalArgumentException-- timeoutが負の値の場合
- 導入されたバージョン:
- 1.1
- 関連項目:
- getSoTimeout()
 
- 
getSoTimeoutpublic int getSoTimeout() throws IOExceptionRetrieve setting forSO_TIMEOUT.このオプションが無効(タイム・アウトが無限)の場合は0を返します。- 戻り値:
- SO_TIMEOUT値
- 例外:
- IOException- 入出力エラーが発生した場合
- 導入されたバージョン:
- 1.1
- 関連項目:
- setSoTimeout(int)
 
- 
setReuseAddresspublic void setReuseAddress(boolean on) throws SocketExceptionSO_REUSEADDRソケット・オプションを有効または無効にします。TCP接続をクローズする場合、接続クローズ後の一定期間、その接続がタイム・アウト状態(通常、 TIME_WAIT状態または2MSL待機状態と呼ばれる)にとどまる可能性があります。 既知のソケット・アドレスまたはポートを使用するアプリケーションの場合、ソケット・アドレスまたはポートに関連する接続がタイム・アウト状態にあると、ソケットを必要なSocketAddressにバインドできないことがあります。bind(SocketAddress)を使用してソケットをバインドする前にSO_REUSEADDRを有効にすると、以前の接続がタイムアウト状態でもソケットをバインドできます。ServerSocketが作成されるときに、SO_REUSEADDRの初期設定は定義されていません。 アプリケーションはgetReuseAddress()を使用して、SO_REUSEADDRの初期設定を確認できます。ソケットがバインドされた( isBound()を参照)後でSO_REUSEADDRを有効または無効にする場合の動作は定義されていません。- パラメータ:
- on- ソケット・オプションを有効にするか無効にするかを指定
- 例外:
- SocketException-- SO_REUSEADDRソケット・オプションの有効化または無効化時にエラーが発生した場合、またはソケットがクローズされている場合。
- 導入されたバージョン:
- 1.4
- 関連項目:
- getReuseAddress(),- bind(SocketAddress),- isBound(),- isClosed()
 
- 
getReuseAddresspublic boolean getReuseAddress() throws SocketExceptionSO_REUSEADDRが有効かどうかを調べます。- 戻り値:
- SO_REUSEADDRが有効かどうかを示す- boolean値。
- 例外:
- SocketException- 使用しているプロトコルでエラー(TCPエラーなど)が発生した場合。
- 導入されたバージョン:
- 1.4
- 関連項目:
- setReuseAddress(boolean)
 
- 
toStringpublic String toString()
- 
setSocketFactorypublic static void setSocketFactory(SocketImplFactory fac) throws IOExceptionアプリケーションのサーバー・ソケット実装ファクトリを設定します。 ファクトリを指定できるのは一度だけです。アプリケーションで新しいサーバー・ソケットを作成すると、ソケット実装ファクトリの createSocketImplメソッドが呼び出され、実際のソケットが作成されます。このメソッドに nullを渡しても、ファクトリがすでに設定されていないかぎり、それは無操作になります。セキュリティ・マネージャが存在する場合、この操作が許可されるように、このメソッドは最初にセキュリティ・マネージャの checkSetFactoryメソッドを呼び出します。 この結果、SecurityExceptionがスローされることがあります。- パラメータ:
- fac- 目的のファクトリ。
- 例外:
- IOException- ソケット・ファクトリの設定中に入出力エラーが発生した場合。
- SocketException- ファクトリがすでに定義されている場合。
- SecurityException- セキュリティ・マネージャが存在し、その- checkSetFactoryメソッドでこの操作が許可されていない場合。
- 関連項目:
- SocketImplFactory.createSocketImpl(),- SecurityManager.checkSetFactory()
 
- 
setReceiveBufferSizepublic void setReceiveBufferSize(int size) throws SocketExceptionこのServerSocketから受け入れられたソケットのSO_RCVBUFオプションのデフォルト推奨値を設定します。 受け入れられたソケット内に実際に設定されている値を確認してください。それには、accept()からソケットが返されてからSocket.getReceiveBufferSize()を呼び出します。SO_RCVBUFの値は、内部ソケット受信バッファのサイズを設定するためと、リモート・ピアに通知されるTCP受信ウィンドウのサイズを設定するために使用されます。その後、 Socket.setReceiveBufferSize(int)を呼び出すことで値を変更できます。 ただし、アプリケーションがRFC1323で定義されている64Kバイトを超える受信ウィンドウを使用可能にする必要がある場合には、ローカル・アドレスにバインドする前に推奨値をServerSocketで設定する必要があります。 つまり、引数なしコンストラクタを使ってServerSocketを作成し、次にsetReceiveBufferSize()を呼び出し、最後にbind()を呼び出してServerSocketをアドレスにバインドする必要があることを意味します。これに失敗してもエラーは発生せず、バッファ・サイズは要求された値に設定されます。ただし、このServerSocketから受け取るソケットのTCP受信ウィンドウは64Kバイト以下になります。 - パラメータ:
- size- 受信バッファ・サイズの設定サイズ。 この値は0より大きくなければならない。
- 例外:
- SocketException- 使用しているプロトコルでエラー(TCPエラーなど)が発生した場合。
- IllegalArgumentException- 値が0または負の値である場合。
- 導入されたバージョン:
- 1.4
- 関連項目:
- getReceiveBufferSize()
 
- 
getReceiveBufferSizepublic int getReceiveBufferSize() throws SocketExceptionこのServerSocketで使われるSO_RCVBUFオプションの値を取得します。これは、このServerSocketから受け取るソケットに使用される推奨バッファ・サイズです。受け入れたソケットに実際に設定された値は、 Socket.getReceiveBufferSize()を呼び出して判定することに注意してください。- 戻り値:
- このSocketのSO_RCVBUFオプションの値。
- 例外:
- SocketException- 使用しているプロトコルでエラー(TCPエラーなど)が発生した場合。
- 導入されたバージョン:
- 1.4
- 関連項目:
- setReceiveBufferSize(int)
 
- 
setPerformancePreferencespublic void setPerformancePreferences(int connectionTime, int latency, int bandwidth)このServerSocketのパフォーマンス設定を行います。ソケットはデフォルトで、TCP/IPプロトコルを使用します。 実装によっては、TCP/IPとは異なるパフォーマンス特性を持つ代替プロトコルを提供することもあります。 アプリケーションは、このメソッドを使用することで、実装で利用可能なプロトコルの選択時に、これらのかね合いの取り方を示す独自の設定を表現できます。 パフォーマンス設定は、接続時間の短さ、応答時間の速さ、および帯域幅の広さの相対的な重要度を示す3つの整数値によって記述されます。 これらの整数の絶対値は重要ではありません。ある特定のプロトコルを選択するために、これらの値が単純に比較されますが、その際、値が大きければより強い設定を示します。 たとえば、アプリケーションが応答時間の速さや帯域幅の広さよりも接続時間の短さを優先する場合には、値 (1, 0, 0)を指定してこのメソッドを呼び出すことができます。 アプリケーションが応答時間の速さよりも帯域幅の広さを優先し、接続時間の短さよりも応答時間の速さを優先する場合には、値(0, 1, 2)を指定してこのメソッドを呼び出すことができます。このソケットのバインド後にこのメソッドを呼び出しても、何の効果もありません。 つまり、この機能を使用するには、引数なしコンストラクタでソケットを作成する必要があります。 - パラメータ:
- connectionTime- 接続時間の短さの相対的な重要度を表す- int
- latency- 応答時間の速さの相対的な重要度を表す- int
- bandwidth- 帯域幅の広さの相対的な重要度を表す- int
- 導入されたバージョン:
- 1.5
 
- 
setOptionpublic <T> ServerSocket setOption(SocketOption<T> name, T value) throws IOExceptionソケット・オプションの値を設定します。- 型パラメータ:
- T- ソケット・オプション値のタイプ
- パラメータ:
- name- ソケット・オプション
- value- ソケット・オプションの値。- nullの値は、一部のオプションで有効です。
- 戻り値:
- このServerSocket
- 例外:
- UnsupportedOperationException- サーバー・ソケットがオプションをサポートしていない場合。
- IllegalArgumentException- 値がオプションに対して有効でない場合。
- IOException- I/Oエラーが発生した場合、またはソケットが閉じられている場合。
- NullPointerException- nameが- nullの場合
- SecurityException- セキュリティ・マネージャが設定されていて、ソケット・オプションにセキュリティ許可が必要で、呼び出し元に必要な許可がない場合。- StandardSocketOptionsはセキュリティ権限を必要としません。
- 導入されたバージョン:
- 9
 
- 
getOptionpublic <T> T getOption(SocketOption<T> name) throws IOExceptionソケット・オプションの値を返します。- 型パラメータ:
- T- ソケット・オプション値のタイプ
- パラメータ:
- name- ソケット・オプション
- 戻り値:
- ソケット・オプションの値。
- 例外:
- UnsupportedOperationException- サーバー・ソケットがオプションをサポートしていない場合。
- IOException- I/Oエラーが発生した場合、またはソケットが閉じられている場合。
- NullPointerException- nameが- nullの場合
- SecurityException- セキュリティ・マネージャが設定されていて、ソケット・オプションにセキュリティ許可が必要で、呼び出し元に必要な許可がない場合。- StandardSocketOptionsはセキュリティ権限を必要としません。
- 導入されたバージョン:
- 9
 
- 
supportedOptionspublic Set<SocketOption<?>> supportedOptions()このサーバー・ソケットでサポートされているソケット・オプションのセットを返します。 このメソッドは、ソケットが閉じられた後も引き続き一連のオプションを返します。- 戻り値:
- このソケットでサポートされているソケット・オプションのセット。 ソケットSocketImplを作成できない場合、このセットは空の場合があります。
- 導入されたバージョン:
- 9
 
 
-