DataTCPSocket (クラス)
public DataTCPSocket {inherits TCPSocket, DataSocket, SocketEventTarget}
パッケージ: CURL.IO.SOCKET

発信接続と着信接続両方の、クライアント TCP ソケット用のクラスです。

プログラミング注意事項

AcceptorTCPSocket.accept の戻り値として、また発信接続を明示的に実行するために、AcceptorTCPSocket によって作成されます。

コンストラクタ
default:ソケットを初期化します。実際には接続しませんが、DataTCPSocket.connect、または DataTCPSocket.start-connect および DataTCPSocket.finish-connect 呼び出しのパラメータを設定できます。
コンストラクタ public {DataTCPSocket.default
local-address:#SocketInetAddress = null,
local-port:uint16 = NetworkSocket.random-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = null,
remote-port:uint16 = NetworkSocket.random-port,
remote-name:#String = null,
remote-port-name:#String = null,
timeout:Time = Socket.infinite-timeout,
try-other-addresses?:bool = true,
timeout-finishes-connect?:bool = true,
reuse-address?:bool = false,
finish-connectable-handler:#EventHandler = null,
finish-connectable-timeout-handler:#EventHandler = null,
finish-connectable-timeout:Time = IOEventTarget.infinite-timeout
}

プロパティ
connect-error:
フィールド protected DataTCPSocket.connect-error:SocketErrorCode
event-enabled?:self のイベントがモニタされる準備ができている場合は true を返します。
アクセサ public DataTCPSocket.event-enabled?:bool
finish-connectable-handler:
フィールド protected DataTCPSocket.finish-connectable-handler:#EventHandler
finish-connectable-timeout:
フィールド protected DataTCPSocket.finish-connectable-timeout:Time
finish-connectable-timeout-handler:
フィールド protected DataTCPSocket.finish-connectable-timeout-handler:#EventHandler
keep-alive?:keep-alive を制御します。つまり、接続がアイドル状態でも失われたときには OS で認識されるということですが、多くのシステムではこのタイムアウト値を長く (たとえば 2 時間) 設定しています。
アクセサ public DataTCPSocket.keep-alive?:bool
セッター public DataTCPSocket.keep-alive?:bool
linger:ソケットがシャットダウンされて閉じられるときのデータ フラッシュに関与する SO_LINGER オプションを制御します。SO_LINGER オプションの制御について十分理解されていない場合は、これを使用しないでください。
アクセサ public DataTCPSocket.linger:int
セッター public DataTCPSocket.linger:int
receive-buffer-size:データを受け取る OS バッファのサイズ。
アクセサ public DataTCPSocket.receive-buffer-size:int
セッター public DataTCPSocket.receive-buffer-size:int
remote-address:ソケットのリモート アドレス (接続先アドレス)。
アクセサ public DataTCPSocket.remote-address:SocketInetAddress
remote-port:ソケットのリモート ポート (接続先ポート)。
アクセサ public DataTCPSocket.remote-port:uint16
send-buffer-size:データを送信する OS バッファのサイズ。
アクセサ public DataTCPSocket.send-buffer-size:int
セッター public DataTCPSocket.send-buffer-size:int
state:
フィールド protected-get private-set DataTCPSocket.state:DataTCPSocketState
tcp-no-delay?:TCP の遅延なしオプションを制御します。これにより、小さいパケットの送信を回避しようとする Nagel アルゴリズムを有効または無効にしますが、マウスの移動などのリアル タイム イベントで問題になる遅延を引き起こす可能性があります。このアルゴリズムを無効にすると比較的小さいパケットも送信されるようになりますが、使用するマシンおよびネットワーク リソースも増えます。
アクセサ public DataTCPSocket.tcp-no-delay?:bool
セッター public DataTCPSocket.tcp-no-delay?:bool
timeout-finishes-connect?:
フィールド protected DataTCPSocket.timeout-finishes-connect?:bool
try-other-addresses?:
フィールド protected DataTCPSocket.try-other-addresses?:bool
プロパティ 継承 NetworkSocket: _local-port, local-address, local-port, open?, reuse-address?, timeout
プロパティ 継承 DefaultIOEventTarget: doing-event-dispatch?, handlers, saved-event-classes, saved-event-classes-valid?, soonest-expiration
プロパティ 継承 EventTarget: event-handlers

メソッド
add-targeted-event-handler:指定した event-target のイベント ハンドラを追加します。
protected {DataTCPSocket.add-targeted-event-handler
event-handler:EventHandler,
event-target:IOEventTarget = self,
timeout:Time = IOEventTarget.infinite-timeout
}:EventHandler
async-connect:ソケットをリモート ポートやアドレスに非同期で接続し、接続が完了したり、失敗したり、タイムアウトした場合 AsyncConnectSocketEvent を送ります。
public {DataTCPSocket.async-connect
local-address:#SocketInetAddress = self._local-address,
local-port:uint16 = self._local-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = self._remote-address,
remote-port:uint16 = self._remote-port,
remote-name:#String = null,
remote-port-name:#String = null,
reuse-address?:bool = self.reuse-address?,
timeout:Time = self.timeout,
try-other-addresses?:bool = self.try-other-addresses?,
timeout-finishes-connect?:bool = self.timeout-finishes-connect?,
event-handler:EventHandler,
...:EventHandler
}:AsyncWorker
call-handler:これは、関連するハンドラを実際に呼び出すために呼び出されます。
protected {DataTCPSocket.call-handler
event:IOEvent,
handler:EventHandler,
event-target:IOEventTarget,
now:#DateTimeData = null
}:void
close:ソケットを閉じます。
public inline {DataTCPSocket.close}:void
connect:リモート アドレスおよびポートに接続します。パラメータは DataTCPSocket.default 呼び出しまたはこの呼び出しで設定できますが、ローカルおよびリモートのアドレスおよびポートと、reuse-address? だけがオブジェクトに保存されます。
public {DataTCPSocket.connect
local-address:#SocketInetAddress = self._local-address,
local-port:uint16 = self._local-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = self._remote-address,
remote-port:uint16 = self._remote-port,
remote-name:#String = null,
remote-port-name:#String = null,
timeout:Time = self.timeout,
try-other-addresses?:bool = self.try-other-addresses?,
timeout-finishes-connect?:bool = self.timeout-finishes-connect?,
reuse-address?:bool = self.reuse-address?
}:void
finish-connect:接続を完了するか、別のアドレスでの接続を実行します。パラメータは、DataTCPSocket.default 呼び出しかこの呼び出しで設定できますが、このメソッドに渡されたパラメータはオブジェクトに保存されません。
public {DataTCPSocket.finish-connect
timeout:Time = self.timeout,
try-other-addresses?:bool = self.try-other-addresses?,
timeout-finishes-connect?:bool = self.timeout-finishes-connect?
}:void
get-no-lookup-remote-hostname:検索を実行せずに DataTCPSocket.remote-addressString 表現を生成します。
protected {DataTCPSocket.get-no-lookup-remote-hostname}:String
private-add-event-handler:
protected {DataTCPSocket.private-add-event-handler
event-handler:EventHandler
}:EventHandler
read-byte:byte を読み込みます。
protected {DataTCPSocket.read-byte
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:(int, byte)
read-bytes:{FastArray-of byte}、つまり ByteVec を読み込みます。
protected {DataTCPSocket.read-bytes
buf:{FastArray-of uint8},
start:int = 0,
size:int = buf.size - start,
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:int
shutdown:ソケットを閉じます。入力または出力のいずれかのシャットダウンも可能です。
public {DataTCPSocket.shutdown
shutdown-only:DataSocketShutdownOption,
exception-if-not-connected?:bool = true
}:void
start-connect:リモート アドレスおよびポートへの接続を開始します。パラメータは、DataTCPSocket.default 呼び出しかこの呼び出しで設定できますが、ローカルおよびリモートのアドレスおよびポートと reuse-address? だけがオブジェクトに保存されます。
public {DataTCPSocket.start-connect
local-address:#SocketInetAddress = self._local-address,
local-port:uint16 = self._local-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = self._remote-address,
remote-port:uint16 = self._remote-port,
remote-name:#String = null,
remote-port-name:#String = null,
reuse-address?:bool = self.reuse-address?,
finish-connectable-handler:#EventHandler = self.finish-connectable-handler,
finish-connectable-timeout-handler:#EventHandler = self.finish-connectable-timeout-handler,
finish-connectable-timeout:Time = self.finish-connectable-timeout
}:void
to-InputStream:このソケットの DataSocketByteInputStream を生成します。
public {DataTCPSocket.to-InputStream}:DataSocketByteInputStream
to-OutputStream:このソケットの DataSocketByteOutputStream を生成します。
public {DataTCPSocket.to-OutputStream}:DataSocketByteOutputStream
write-byte:byte の送信または書き込みを行います。
protected {DataTCPSocket.write-byte
b:byte,
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:int
write-bytes:{FastArray-of byte}、つまり ByteVec の送信または書き込みを行います。
protected {DataTCPSocket.write-bytes
buf:{FastArray-of uint8},
start:int = 0,
size:int = buf.size - start,
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:int
メソッド 継承 TCPSocket: ready-to-close?
メソッド 継承 SocketEventTarget: handlers-resize
メソッド 継承 NetworkSocket: load-local-address-port
メソッド 継承 DefaultIOEventTarget: add-event-handler, add-timeout-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
メソッド 継承 EventTarget: accepts-event-class?
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {DataTCPSocket.default
local-address:#SocketInetAddress = null,
local-port:uint16 = NetworkSocket.random-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = null,
remote-port:uint16 = NetworkSocket.random-port,
remote-name:#String = null,
remote-port-name:#String = null,
timeout:Time = Socket.infinite-timeout,
try-other-addresses?:bool = true,
timeout-finishes-connect?:bool = true,
reuse-address?:bool = false,
finish-connectable-handler:#EventHandler = null,
finish-connectable-timeout-handler:#EventHandler = null,
finish-connectable-timeout:Time = IOEventTarget.infinite-timeout
}

ソケットを初期化します。実際には接続しませんが、DataTCPSocket.connect、または DataTCPSocket.start-connect および DataTCPSocket.finish-connect 呼び出しのパラメータを設定できます。

local-address: バインド先のローカル アドレス。ソケットは接続が確立されるときにそれ自体を適切にバインドするので、通常 local-address は必要ありません。local-address または local-name を指定すると、ソケットはそのパラメータのアドレス ファミリーで通信するように制限されます。
local-port: バインド先のローカル ポートを示す uint16 のキーワード。接続が確立されるときにそれ自体で空いているポートにバインドするので、通常は必要ありません。
local-name: バインド先のローカル アドレスを探すときに使用するホスト名を示す String のキーワード。接続が確立されるときにそれ自体を適切にバインドするので、通常は必要ありません。
local-port-name: バインド先のローカル ポートを探すときに使用するポート名を示す String のキーワード。接続が確立されるときにそれ自体を空いているポートにバインドするので、通常は必要ありません。
remote-address: 接続先のリモート アドレスを示す SocketInetAddress のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-name、および remote-portremote-port-name を指定する必要があります。
remote-port: 接続先のリモート ポートを示す uint16 のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-port-name、および remote-nameremote-address を指定する必要があります。
remote-name: 接続先のリモート アドレスを探すときに使用するホスト名を示す String のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-address、および remote-portremote-port-name を指定する必要があります。
remote-port-name: 接続先のリモート ポートを探すときに使用するポート名を示す String のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-port、および remote-nameremote-address を指定する必要があります。
timeout: このクラスのこのインスタンスが作成するすべてのブロッキング呼び出しに適用される既定のタイムアウトを示す Time のキーワード。既定は無限、つまりブロッキングです。
try-other-addresses?: bool のキーワード。(remote-name または remote-address で指定された) リモート ホストの他のアドレス (存在する場合) で試行する必要があるかどうかを示します。既定値は true です。
timeout-finishes-connect?: bool のキーワード。接続中に指定したタイムアウト値によるタイムアウトが起こったときに接続試行をキャンセルするかどうかを指定します。true を既定値とします。
reuse-address?: TIME_WAIT 状態にあるローカル アドレスとポート名の組み合わせの再使用を許可するかどうかを示す bool のキーワード (一部のシステムでは、他のあまり推奨できない場合での再使用も許可されている可能性があります)。既定値は false です。local-namelocal-addresslocal-port、または local-port-name が指定されている場合にのみ適用されます。
finish-connectable-handler: DataTCPSocket.start-connect を呼び出した後で、接続に成功または失敗して DataTCPSocket.finish-connect をブロッキングなしで呼び出せるときに (DataTCPSocket.finish-connecttimeout=Socket.zero-timeout オプションを設定して呼び出すか、既定のタイムアウトを Socket.zero-timeout に設定します)、自動的に呼び出される FinishConnectableSocketEventEventHandler のキーワード。既定は null です。DataTCPSocket.start-connect および DataTCPSocket.finish-connect の代わりに DataTCPSocket.connect が 使用されている場合、このパラメータはまったく効果がないことに注意してください。このハンドラは、ソケットが接続状態でなくなったときに自動的に削除されます。EventHandler の作成の詳細については、on を参照してください。
finish-connectable-timeout-handler: DataTCPSocket.start-connect を呼び出た後で、finish-connectable-timeout が接続の成功または失敗に関係なく渡され、DataTCPSocket.finish-connect をブロッキングなしで呼び出せるときに (DataTCPSocket.finish-connecttimeout=Socket.zero-timeout オプションを指定して呼び出すか、既定のタイムアウトを Socket.zero-timeout に設定します)、自動的に呼び出される FinishConnectableTimeoutSocketEventEventHandler のキーワード。既定は null です。DataTCPSocket.start-connect および DataTCPSocket.finish-connect の代わりに DataTCPSocket.connect が 使用されている場合、このパラメータはまったく効果がないことに注意してください。このハンドラは、ソケットが接続状態でなくなったときに自動的に削除されます。EventHandler の作成の詳細については、on を参照してください。
finish-connectable-timeout: 接続が完了していないか失敗した場合に呼び出される finish-connectable-timeout-handler のタイムアウトの Time のキーワード。既定値は IOEventTarget.infinite-timeout です。



プロパティ詳細
connect-error (フィールド)
protected DataTCPSocket.connect-error:SocketErrorCode
この項目はサポートされていません。内部使用限定となっています。


event-enabled? (アクセサ)
アクセサ public DataTCPSocket.event-enabled?:bool

self のイベントがモニタされる準備ができている場合は true を返します。

注意事項

IOEventTarget コードによってのみ呼び出されます。


finish-connectable-handler (フィールド)
protected DataTCPSocket.finish-connectable-handler:#EventHandler
この項目はサポートされていません。内部使用限定となっています。


finish-connectable-timeout (フィールド)
protected DataTCPSocket.finish-connectable-timeout:Time
この項目はサポートされていません。内部使用限定となっています。


finish-connectable-timeout-handler (フィールド)
protected DataTCPSocket.finish-connectable-timeout-handler:#EventHandler
この項目はサポートされていません。内部使用限定となっています。


keep-alive? (アクセサ)
アクセサ public DataTCPSocket.keep-alive?:bool
セッター public DataTCPSocket.keep-alive?:bool

keep-alive を制御します。つまり、接続がアイドル状態でも失われたときには OS で認識されるということですが、多くのシステムではこのタイムアウト値を長く (たとえば 2 時間) 設定しています。

注意事項

既定値は off です。


linger (アクセサ)
アクセサ public DataTCPSocket.linger:int
セッター public DataTCPSocket.linger:int

ソケットがシャットダウンされて閉じられるときのデータ フラッシュに関与する SO_LINGER オプションを制御します。SO_LINGER オプションの制御について十分理解されていない場合は、これを使用しないでください。

sl: -1 はオフ (close が即座に返され、OS はデータ送信を実行します)、0 は遅延時間 0 で待機する (close はデータをクリアする) ことを意味します。0 より大きい値はその遅延時間を示し、指定された秒数 (多数の実装では長い時間) close はデータ送信の試行を待機することを意味します。

注意事項

既定値は off です。


receive-buffer-size (アクセサ)
アクセサ public DataTCPSocket.receive-buffer-size:int
セッター public DataTCPSocket.receive-buffer-size:int

データを受け取る OS バッファのサイズ。

注意事項

データの受信速度と、接続での read 呼び出しがブロックする回数に影響します。送信できるデータのサイズまたは量には影響しません。OS が指定されたサイズを受け取らない場合もあります。


remote-address (アクセサ)
アクセサ public DataTCPSocket.remote-address:SocketInetAddress

ソケットのリモート アドレス (接続先アドレス)。



remote-port (アクセサ)
アクセサ public DataTCPSocket.remote-port:uint16

ソケットのリモート ポート (接続先ポート)。



send-buffer-size (アクセサ)
アクセサ public DataTCPSocket.send-buffer-size:int
セッター public DataTCPSocket.send-buffer-size:int

データを送信する OS バッファのサイズ。

注意事項

データの送信速度と、接続での送信がブロックする回数に影響します。送信できるデータのサイズまたは量には影響しません。OS が指定されたサイズを受け取らない場合もあります。


state (フィールド)
protected-get private-set DataTCPSocket.state:DataTCPSocketState
この項目はサポートされていません。内部使用限定となっています。


tcp-no-delay? (アクセサ)
アクセサ public DataTCPSocket.tcp-no-delay?:bool
セッター public DataTCPSocket.tcp-no-delay?:bool

TCP の遅延なしオプションを制御します。これにより、小さいパケットの送信を回避しようとする Nagel アルゴリズムを有効または無効にしますが、マウスの移動などのリアル タイム イベントで問題になる遅延を引き起こす可能性があります。このアルゴリズムを無効にすると比較的小さいパケットも送信されるようになりますが、使用するマシンおよびネットワーク リソースも増えます。

注意事項

既定値は off です。


timeout-finishes-connect? (フィールド)
protected DataTCPSocket.timeout-finishes-connect?:bool
この項目はサポートされていません。内部使用限定となっています。


try-other-addresses? (フィールド)
protected DataTCPSocket.try-other-addresses?:bool
この項目はサポートされていません。内部使用限定となっています。





メソッド詳細
add-targeted-event-handler (メソッド)
protected {DataTCPSocket.add-targeted-event-handler
event-handler:EventHandler,
event-target:IOEventTarget = self,
timeout:Time = IOEventTarget.infinite-timeout
}:EventHandler

指定した event-target のイベント ハンドラを追加します。

event-handler: event-target に追加される EventHandler
event-target: event-handler を追加する必要がある IOEventTarget
timeout: イベント ハンドラのタイムアウトです (必要な場合)。

注意事項

event-target がプロキシ スタイルの IOEventTarget で使用されている場合、event-target は self 以外の何かになります。


async-connect (メソッド)
public {DataTCPSocket.async-connect
local-address:#SocketInetAddress = self._local-address,
local-port:uint16 = self._local-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = self._remote-address,
remote-port:uint16 = self._remote-port,
remote-name:#String = null,
remote-port-name:#String = null,
reuse-address?:bool = self.reuse-address?,
timeout:Time = self.timeout,
try-other-addresses?:bool = self.try-other-addresses?,
timeout-finishes-connect?:bool = self.timeout-finishes-connect?,
event-handler:EventHandler,
...:EventHandler
}:AsyncWorker

ソケットをリモート ポートやアドレスに非同期で接続し、接続が完了したり、失敗したり、タイムアウトした場合 AsyncConnectSocketEvent を送ります。

event-handler: AsyncConnectSocketEvent を受け取る EventHandler。少なくとも 1 つを指定する必要があります。
...: AsyncConnectSocketEvent を受け取るオプションの EventHandler

プログラミング注意事項

finish-connectable-handlerfinish-connectable-timeout-handler は、設定された DataTCPSocket で使用されるので、同時にこれを使用すべきではありません。

注意事項

EventHandler を除く全てのパラメータは DataTCPSocket.connect と同じ意味になります。
導入: バージョン 6.0


call-handler (メソッド)
protected {DataTCPSocket.call-handler
event:IOEvent,
handler:EventHandler,
event-target:IOEventTarget,
now:#DateTimeData = null
}:void

これは、関連するハンドラを実際に呼び出すために呼び出されます。

プログラミング注意事項

IOEventTarget.handle-event および DefaultIOEventTarget.enqueue-timeout によって呼び出されます。

オーバーライド

サブクラスが呼び出しを抑止する必要がある場合にはオーバーライドできますが、オーバーライド側はその呼び出しが抑止されない場合にさらに super.call-handler を呼び出す必要があります。


close (メソッド)
public inline {DataTCPSocket.close}:void

ソケットを閉じます。

プログラミング注意事項

呼び出し側では、この呼び出しの後で Socket を何かに使用することはできません。SocketEventHandler を持つ場合、これらは close によって削除または無効にされます。Socket の状態は、close の呼び出し後にクリアされます。


connect (メソッド)
public {DataTCPSocket.connect
local-address:#SocketInetAddress = self._local-address,
local-port:uint16 = self._local-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = self._remote-address,
remote-port:uint16 = self._remote-port,
remote-name:#String = null,
remote-port-name:#String = null,
timeout:Time = self.timeout,
try-other-addresses?:bool = self.try-other-addresses?,
timeout-finishes-connect?:bool = self.timeout-finishes-connect?,
reuse-address?:bool = self.reuse-address?
}:void

リモート アドレスおよびポートに接続します。パラメータは DataTCPSocket.default 呼び出しまたはこの呼び出しで設定できますが、ローカルおよびリモートのアドレスおよびポートと、reuse-address? だけがオブジェクトに保存されます。

プログラミング注意事項

ソケットで任意の種類の入出力を行う前に呼び出します。接続がブロックする / しないタイミングを詳細にコントロールするには、DataTCPSocket.start-connect および DataTCPSocket.finish-connect を使用します。
local-address: バインド先のローカル アドレス。ソケットは接続が確立されるときにそれ自体を適切にバインドするので、通常 local-address は必要ありません。local-address または local-name を指定すると、ソケットはそのパラメータのアドレス ファミリーで通信するように制限されます。
local-port: バインド先のローカル ポートを示す uint16 のキーワード。接続が確立されるときにそれ自体で空いているポートにバインドするので、通常は必要ありません。
local-name: ローカル アドレスを探すときに使用するホスト名を示す String のキーワード。接続が確立されるときにそれ自体を適切にバインドするので、通常は必要ありません。
local-port-name: バインド先のローカル ポートを探すときに使用するポート名を示す String のキーワード。接続が確立されるときにそれ自体を空いているポートにバインドするので、通常は必要ありません。
remote-address: 接続先のリモート アドレスを示す SocketInetAddress のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-name、および remote-portremote-port-name を指定する必要があります。
remote-port: 接続先のリモート ポートを示す uint16 のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-port-name、および remote-nameremote-address を指定する必要があります。
remote-name: 接続先のリモート アドレスを探すときに使用するホスト名を示す String のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-address、および remote-portremote-port-name を指定する必要があります。
remote-port-name: 接続先のリモート ポートを探すときに使用するポート名を示す String のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-port-name、および remote-nameremote-address を指定する必要があります。
timeout: この呼び出しのタイムアウトの Time のキーワード。この呼び出しについてのみ既定をオーバーライドします。これは試行されるアドレスごとのタイムアウトであり、timeout-finishes-connect? パラメータとのインタラクションがあります。
try-other-addresses?: bool のキーワード。(remote-name または remote-address で指定された) リモート ホストの他のアドレス (存在する場合) で試行する必要があるかどうかを示します。既定値は true です。
timeout-finishes-connect?: bool のキーワード。接続中に指定したタイムアウト値によるタイムアウトが起こったときに接続試行をキャンセルするかどうかを指定します。既定値は true です。false の場合は、接続に成功するか、OS が失敗を通知するまで各アドレスへの接続試行を続けるので、timeout は意味がなくなります。
reuse-address?: TIME_WAIT 状態にあるローカル アドレスとポート名の組み合わせの再使用を許可するかどうかを示す bool のキーワード (一部のシステムでは、他のあまり推奨できない場合での再使用も許可されている可能性があります)。既定値は false です。local-namelocal-addresslocal-port、または local-port-name が指定されている場合にのみ適用されます。

注意事項

名前とポートの検索、および接続に関連するさまざまな SocketException をスローできます。

注意事項

接続が成功した場合、接続されたアドレスは DataTCPSocket.remote-address.addresses[0] として利用可能です。


finish-connect (メソッド)
public {DataTCPSocket.finish-connect
timeout:Time = self.timeout,
try-other-addresses?:bool = self.try-other-addresses?,
timeout-finishes-connect?:bool = self.timeout-finishes-connect?
}:void

接続を完了するか、別のアドレスでの接続を実行します。パラメータは、DataTCPSocket.default 呼び出しかこの呼び出しで設定できますが、このメソッドに渡されたパラメータはオブジェクトに保存されません。

プログラミング注意事項

DataTCPSocket.start-connect 呼び出しの後で、このソケット上の入出力を実行する前に呼び出します。タイムアウトによる接続の未完了の場合、または try-other-addresses?true のときに存在する複数のアドレスの 1 つで接続に失敗したために接続が完了しなかった場合、WouldBlockSocketException をスローします。WouldBlockSocketException をスローした場合は、このメソッドを再度呼び出して接続試行を続けることができます (再呼び出しで実行される正確な操作は try-other-addresses? および timeout-finishes-connect? パラメータでコントロールされます)。
timeout: この呼び出しのタイムアウトの Time のキーワード。この呼び出しについてのみ既定値をオーバーライドします。
try-other-addresses?: bool のキーワード。(remote-name または remote-address で指定された) リモート ホストの他のアドレス (存在する場合) で試行する必要があるかどうかを示します。既定値は true です。
timeout-finishes-connect?: bool のキーワード。接続をキャンセルしようとしている間に、設定されたタイムアウト値でタイムアウトすべきかどうかを示します。既定値は true です。これが問題になるのは、主に try-other-addresses?true の場合です。これが true の場合、毎回このメソッドが呼び出され新しいアドレスを試みようとします。これが false の場合、タイムアウト以外で失敗するまで同じアドレスで試み続けます。失敗して初めて、新しいアドレスを試みます。

注意事項

名前とポートの検索、および接続に関連するさまざまな SocketException をスローできます。

注意事項

接続が成功した場合、接続されたアドレスは DataTCPSocket.remote-address.addresses[0] として利用可能です。


get-no-lookup-remote-hostname (メソッド)
protected {DataTCPSocket.get-no-lookup-remote-hostname}:String

検索を実行せずに DataTCPSocket.remote-addressString 表現を生成します。

注意事項

複数のエラー メッセージ (ホスト名の検索で発生することがあります) が重ねられるのを避けるために必要なエラー メッセージを生成するのに使用されます。


private-add-event-handler (メソッド)
protected {DataTCPSocket.private-add-event-handler
event-handler:EventHandler
}:EventHandler
この項目はサポートされていません。内部使用限定となっています。


read-byte (メソッド)
protected {DataTCPSocket.read-byte
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:(int, byte)

byte を読み込みます。

プログラミング注意事項

通常は DataSocket.to-OutputStream が使用されます。
timeout: クラスにすでに格納されている値が適切でない場合に使用されるタイムアウトの Time キーワード。
exception-on-timeout?: タイムアウトで例外をスローするかどうかを示す bool キーワード。既定値は true です。

戻り値

b、読み込む byte数、読み込まれたバイトの int 数。


read-bytes (メソッド)
protected {DataTCPSocket.read-bytes
buf:{FastArray-of uint8},
start:int = 0,
size:int = buf.size - start,
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:int

{FastArray-of byte}、つまり ByteVec を読み込みます。

プログラミング注意事項

通常は DataSocket.to-InputStream が代わりに使用されます。
buf: 読み込まれる {FastArray-of byte}
start: 開始ベクトルの int キーワード。既定値は 0 です。
size: 長さを示す int キーワード。既定値は buf.size - start です。
timeout: クラスにすでに格納されている値が適切でない場合に使用されるタイムアウトの Time キーワード。
exception-on-timeout?: タイムアウトで例外をスローするかどうかを示す bool キーワード。既定値は true です。

戻り値

読み込まれたバイト数を示す int。EOF では -1 になります。


shutdown (メソッド)
public {DataTCPSocket.shutdown
shutdown-only:DataSocketShutdownOption,
exception-if-not-connected?:bool = true
}:void

ソケットを閉じます。入力または出力のいずれかのシャットダウンも可能です。

shutdown-only: 全体的なシャットダウンか、入力または出力のみのシャットダウンかを示します (DataSocketShutdownOption.input-outputDataSocketShutdownOption.inputDataSocketShutdownOption.output をそれぞれ使用します)。
exception-if-not-connected?: 別の側のソケットが閉じられた場合に例外をスローするかどうかを示す bool キーワード。既定は true です。(これは、BadStateSocketException のキャッチ、SocketErrorCode.not-connected エラー コードのチェック、およびその無視と同じことですがより高速です。)

プログラミング注意事項

これを実行して接続の終了を開始します。この後に、Socket.close を呼び出す必要があります。


start-connect (メソッド)
public {DataTCPSocket.start-connect
local-address:#SocketInetAddress = self._local-address,
local-port:uint16 = self._local-port,
local-name:#String = null,
local-port-name:#String = null,
remote-address:#SocketInetAddress = self._remote-address,
remote-port:uint16 = self._remote-port,
remote-name:#String = null,
remote-port-name:#String = null,
reuse-address?:bool = self.reuse-address?,
finish-connectable-handler:#EventHandler = self.finish-connectable-handler,
finish-connectable-timeout-handler:#EventHandler = self.finish-connectable-timeout-handler,
finish-connectable-timeout:Time = self.finish-connectable-timeout
}:void

リモート アドレスおよびポートへの接続を開始します。パラメータは、DataTCPSocket.default 呼び出しかこの呼び出しで設定できますが、ローカルおよびリモートのアドレスおよびポートと reuse-address? だけがオブジェクトに保存されます。

プログラミング注意事項

この後で DataTCPSocket.finish-connect を呼び出して、実際に起こったことを確認し、接続試行の完了を待機する必要があります。さらにこれを呼び出した後で、ソケットが不要になったときに DataTCPSocket.close を呼び出してこれを削除する必要があります。
local-address: バインド先のローカル アドレスを示す SocketInetAddress のキーワード。接続が確立されるときにそれ自体を適切にバインドするので、通常は必要ありません。local-address または local-name を指定すると、ソケットはその値が使用するアドレス ファミリーで通信するように制限されることに注意してください。
local-port: バインド先のローカル ポートを示す uint16 のキーワード。接続が確立されるときにそれ自体で空いているポートにバインドするので、通常は必要ありません。
local-name: ローカル アドレスを探すときに使用するホスト名を示す String のキーワード。接続が確立されるときにそれ自体を適切にバインドするので、通常は必要ありません。
local-port-name: バインド先のローカル ポートを探すときに使用するポート名を示す String のキーワード。接続が確立されるときにそれ自体を空いているポートにバインドするので、通常は必要ありません。
remote-address: 接続先のリモート アドレスを示す SocketInetAddress のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-name、および remote-portremote-port-name を指定する必要があります。
remote-port: 接続先のリモート ポートを示す uint16 のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-port-name、および remote-nameremote-address を指定する必要があります。
remote-name: 接続先のリモート アドレスを探すときに使用するホスト名を示す String のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-address、および remote-portremote-port-name を指定する必要があります。
remote-port-name: 接続先のリモート ポートを探すときに使用するポート名を示す String のキーワード。DataTCPSocket.default 呼び出し、または DataTCPSocket.connectDataTCPSocket.start-connect 呼び出しで、これか remote-port-name、および remote-nameremote-address を指定する必要があります。
reuse-address?: TIME_WAIT 状態にあるローカル アドレスとポート名の組み合わせの再使用を許可するかどうかを示す bool のキーワード (一部のシステムでは、他のあまり推奨できない場合での再使用も許可されている可能性があります)。既定値は false です。local-namelocal-addresslocal-port、または local-port-name が指定されている場合にのみ適用されます。
finish-connectable-handler: DataTCPSocket.start-connect を呼び出した後で、接続に成功または失敗して DataTCPSocket.finish-connect をブロッキングなしで呼び出せるときに (DataTCPSocket.finish-connecttimeout=Socket.zero-timeout オプションを指定して呼び出すか、既定のタイムアウトを Socket.zero-timeout に設定します)、自動的に呼び出される FinishConnectableSocketEventEventHandler のキーワード。既定は null です。DataTCPSocket.start-connect および DataTCPSocket.finish-connect の代わりに DataTCPSocket.connect が 使用されている場合、このパラメータはまったく効果がないことに注意してください。このハンドラは、ソケットが接続状態でなくなったときに自動的に削除されます。EventHandler の作成の詳細については、on を参照してください。
finish-connectable-timeout-handler: DataTCPSocket.start-connect を呼び出た後で、finish-connectable-timeout が接続の成功または失敗に関係なく渡され、DataTCPSocket.finish-connect をブロッキングなしで呼び出せるときに (DataTCPSocket.finish-connecttimeout=Socket.zero-timeout オプションを指定して呼び出すか、既定のタイムアウトを Socket.zero-timeout に設定します)、自動的に呼び出される FinishConnectableTimeoutSocketEventEventHandler のキーワード。既定は null です。DataTCPSocket.start-connect および DataTCPSocket.finish-connect の代わりに DataTCPSocket.connect が 使用されている場合、このパラメータはまったく効果がないことに注意してください。このハンドラは、ソケットが接続状態でなくなったときに自動的に削除されます。EventHandler の作成の詳細については、on を参照してください。
finish-connectable-timeout: 接続が完了していないか失敗した場合に呼び出される finish-connectable-timeout-handler のタイムアウトの Time のキーワード。既定値は IOEventTarget.infinite-timeout です。

注意事項

名前とポートの検索、および接続に関連するさまざまな SocketException をスローできます。


to-InputStream (メソッド)
public {DataTCPSocket.to-InputStream}:DataSocketByteInputStream

このソケットの DataSocketByteInputStream を生成します。

注意事項

ソケットを完全に閉じる前に、DataSocket.to-InputStreamDataSocket.to-OutputStreamで返されるすべてのストリームとソケット自体を閉じる必要があります。

注意事項

DataSocketShutdownOption.input-output または DataSocketShutdownOption.inputDataSocket.shutdown を呼び出した後、または Socket.close を呼び出した後では、この呼び出しは失敗します。


to-OutputStream (メソッド)
public {DataTCPSocket.to-OutputStream}:DataSocketByteOutputStream

このソケットの DataSocketByteOutputStream を生成します。

注意事項

ソケットを完全に閉じる前に、DataSocket.to-InputStreamDataSocket.to-OutputStreamで返されるすべてのストリームとソケット自体を閉じる必要があります。

注意事項

DataSocketShutdownOption.input-output または DataSocketShutdownOption.outputDataSocket.shutdown を呼び出した後、または Socket.close を呼び出した後では、この呼び出しは失敗します。


write-byte (メソッド)
protected {DataTCPSocket.write-byte
b:byte,
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:int

byte の送信または書き込みを行います。

プログラミング注意事項

通常は DataSocket.to-OutputStream が使用されます。
b: 送信される byte
timeout: クラスにすでに格納されている値が適切でない場合に使用されるタイムアウトの Time キーワード。
exception-on-timeout?: タイムアウトで例外をスローするかどうかを示す bool キーワード。既定値は true です。

戻り値

書き込まれたバイト数を示す int


write-bytes (メソッド)
protected {DataTCPSocket.write-bytes
buf:{FastArray-of uint8},
start:int = 0,
size:int = buf.size - start,
timeout:Time = self.timeout,
exception-on-timeout?:bool = true
}:int

{FastArray-of byte}、つまり ByteVec の送信または書き込みを行います。

プログラミング注意事項

通常は DataSocket.to-OutputStream が使用されます。
buf: 送信される {FastArray-of byte}
start: 開始ベクトルの int キーワード。既定値は 0 です。
size: 長さを示す int キーワード。既定値は buf.size - start です。
timeout: クラスにすでに格納されている値が適切でない場合に使用されるタイムアウトの Time キーワード。
exception-on-timeout?: タイムアウトで例外をスローするかどうかを示す bool キーワード。既定値は true です。

戻り値

書き込まれたバイト数を示す int