(クラス)
着信 TCP 接続の所定ポートをリスニングするサーバー TCP ソケットのクラス。
プログラミング注意事項
コンストラクタ public | {AcceptorTCPSocket.default local-address:#SocketInetAddress = null,local-port:uint16 = NetworkSocket.random-port,local-name:#String = null,local-port-name:#String = null,timeout:Time = Socket.infinite-timeout,reuse-address?:bool = false,listen-backlog:int = AcceptorTCPSocket.default-listen-backlog,acceptable-handler:#EventHandler = null } |
アクセサ public inline AcceptorTCPSocket.event-enabled?:
bool
public constant AcceptorTCPSocket.default-listen-backlog:
int =lowtcpsocket-listen-maxbacklog
public | {AcceptorTCPSocket.add-event-handler}:void |
public | {AcceptorTCPSocket.add-timeout-event-handler}:void |
public | {AcceptorTCPSocket.bind local-address:#SocketInetAddress = self._local-address,local-port:uint16 = self._local-port,local-name:#String = null,local-port-name:#String = null,reuse-address?:bool = self.reuse-address?,listen-backlog:int = self._listen-backlog,acceptable-handler:#EventHandler = self.acceptable-handler }:void |
protected | {AcceptorTCPSocket.call-handler}:void |
public | {AcceptorTCPSocket.close}:void |
protected | {AcceptorTCPSocket.impl-accept}:void |
public | {AcceptorTCPSocket.set-listen-backlog backlog:int}:void |
メソッド 継承 DefaultIOEventTarget:
add-targeted-event-handler, begin-event-enabled, begin-using-handlers, end-event-enabled, end-using-handlers, enqueue-timeout, event-handler-present?, handle-event, handle-event-with-now, make-IOEvent, new-handlers, remove-event-handler, remove-event-handler-by-type, remove-targeted-event-handler, remove-targeted-event-handler-by-type, reset-event-handler-expiration, verify-event
(コンストラクタ)
public | {AcceptorTCPSocket.default local-address:#SocketInetAddress = null,local-port:uint16 = NetworkSocket.random-port,local-name:#String = null,local-port-name:#String = null,timeout:Time = Socket.infinite-timeout,reuse-address?:bool = false,listen-backlog:int = AcceptorTCPSocket.default-listen-backlog,acceptable-handler:#EventHandler = null } |
ソケットを初期化します。実際にはバインドしませんが、AcceptorTCPSocket.bind 呼び出しのパラメータを設定できます。
local-address: バインド先のローカル アドレス。ソケットは local-address および local-name が提供されていない場合、IPv4 および IPv6 の任意のアドレスをバインドするので、通常 local-address は必要ありません。local-address または local-name が提供されている場合、ソケットはそのパラメータのアドレス ファミリーを使用できるインターフェースからの接続だけを受信することができます。
local-port: バインド先のローカル ポートを示す
uint16 のキーワード。クライアントは、この
AcceptorTCPSocket に達するには、同じポートを指定する必要があります。
local-name: バインド先のローカル アドレスを探すときに使用するホスト名を示す String のキーワード。既定で任意のローカル アドレスでの接続が許可されるので、通常は必要ありません。
local-port-name: バインド先のローカル ポートを探すときに使用するポートの名前を示す String のキーワード。
timeout: このクラスのこのインスタンスが作成するすべてのブロッキング呼び出しに適用される既定のタイムアウトを示す Time のキーワード。既定は無限、つまりブロッキングです。
reuse-address?: TIME_WAIT 状態にあるローカル アドレスとポート名の組み合わせの再使用を許可するかどうかを示す bool のキーワード (一部のシステムでは、他のあまり推奨できない場合での再使用も許可されている可能性があります)。既定値は false です。
(アクセサ)
アクセサ public inline AcceptorTCPSocket.event-enabled?:
bool self のイベントがモニタされる準備ができている場合は true を返します。
注意事項
(クラス定数)
public constant AcceptorTCPSocket.default-listen-backlog:
int =lowtcpsocket-listen-maxbacklog
(メソッド)
新しい着信接続を受け取ります。
timeout: この呼び出しだけのタイムアウト値を指定するキーワード。指定時間内に何も起こらなかった場合は復帰します。
戻り値
プログラミング注意事項
オーバーライド
(メソッド)
public | {AcceptorTCPSocket.add-event-handler}:void |
(メソッド)
public | {AcceptorTCPSocket.add-timeout-event-handler}:void |
(メソッド)
ソケットの着信接続を非同期で許可し、各着信接続が許可された後や失敗やタイムアウトで AsyncAcceptSocketEvent を EventHandler へ伝えます。
timeout: 許可なしにこの時間が経過した場合、イベントが送られ、それ以上の許可は行われません。
accept-count: この async-accept 呼び出しで読み込まれるソケット接続の数です。既定は -1 ですが、これは永遠に許可し続けること、または失敗やタイムアウトが発生するまで許可し続けることを意味しています。
プログラミング注意事項
導入:
バージョン 6.0
(メソッド)
public | {AcceptorTCPSocket.bind local-address:#SocketInetAddress = self._local-address,local-port:uint16 = self._local-port,local-name:#String = null,local-port-name:#String = null,reuse-address?:bool = self.reuse-address?,listen-backlog:int = self._listen-backlog,acceptable-handler:#EventHandler = self.acceptable-handler }:void |
ローカル アドレスおよびポートにバインドします。パラメータは、AcceptorTCPSocket.default またはこの呼び出しで設定できます。
プログラミング注意事項
注意事項
local-address: バインド先のローカル アドレス。ソケットは local-address および local-name が提供されていない場合、IPv4 および IPv6 の任意のアドレスをバインドするので、通常 local-address は必要ありません。local-address または local-name が提供されている場合、ソケットはそのパラメータのアドレス ファミリーを使用できるインターフェースからの接続だけを受信することができます。
local-port: バインド先のローカル ポートを示す
uint16 のキーワード。クライアントは、この
AcceptorTCPSocket に達するには、同じポートを指定する必要があります。
local-name: バインド先のローカル アドレスを探すときに使用するホスト名を示す String のキーワード。既定で任意のローカル アドレスでの接続が許可されるので、通常は必要ありません。
local-port-name: バインド先のローカル ポートを探すときに使用するポートの名前を示す String のキーワード。
reuse-address?: TIME_WAIT 状態にあるローカル アドレスとポート名の組み合わせの再使用を許可するかどうかを示す bool のキーワード (一部のシステムでは、他のあまり推奨できない場合での再使用も許可されている可能性があります)。既定値は false です。
(メソッド)
protected | {AcceptorTCPSocket.call-handler}:void |
これは、関連するハンドラを実際に呼び出すために呼び出されます。
プログラミング注意事項
オーバーライド
サブクラスが呼び出しを抑止する必要がある場合にはオーバーライドできますが、オーバーライド側はその呼び出しが抑止されない場合にさらに super.call-handler を呼び出す必要があります。
(メソッド)
public | {AcceptorTCPSocket.close}:void |
(メソッド)
protected | {AcceptorTCPSocket.impl-accept}:void |
新しい着信接続を受け取ります。
timeout: この呼び出しだけのタイムアウト値を指定するキーワード。指定時間内に何も起こらなかった場合は復帰します。
プログラミング注意事項
(メソッド)
public | {AcceptorTCPSocket.set-listen-backlog backlog:int}:void |
バックログを設定し、まだ AcceptorTCPSocket.accept の対象になっていない接続を OS が一度にいくつ保持できるかを示します。
backlog: 適正なバックログ値の int。
プログラミング注意事項
ソケットを閉じるまで、何回でも呼び出せます。
注意事項
OS によってはこの値が上下する場合がありますが、使用されている値をチェックする方法はありません。値が減らされた場合、OS が保持する
AcceptorTCPSocket.accept の対象でない接続が切断される可能性があります。サーバーが適当な時間内に処理できる場合は大きい値でも問題ありませんが、そうでない場合は適切ではありません。