(クラス)
UDP パケットの送受信のためのクラス。
プログラミング注意事項
コンストラクタ public | {UDPSocket.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,reuse-address?:bool = false,readable-handler:#EventHandler = null } |
アクセサ public UDPSocket.broadcast?:
bool セッター public UDPSocket.broadcast?:
bool
アクセサ public UDPSocket.event-enabled?:
bool
アクセサ public UDPSocket.max-packet-size:
int
アクセサ public UDPSocket.receive-buffer-size:
int セッター public UDPSocket.receive-buffer-size:
int
アクセサ public UDPSocket.send-buffer-size:
int セッター public UDPSocket.send-buffer-size:
int
public | {UDPSocket.add-timeout-event-handler}:void |
public | {UDPSocket.bind}:void |
protected | {UDPSocket.call-handler}:void |
public inline | {UDPSocket.close}:void |
set-remote-name: | リモート アドレスを名前で検索して設定して、パケットの送信先であり着信パケットのフィルタリングの対象となる既定のリモート アドレスを設定します。 |
public inline | {UDPSocket.set-remote-name remote-name:#String}:void |
public | {UDPSocket.set-remote-port-name remote-port-name:String}:void |
public | {UDPSocket.write-packet}:bool |
メソッド 継承 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 | {UDPSocket.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,reuse-address?:bool = false,readable-handler:#EventHandler = null } |
UDPSocket を初期化します。
local-address: バインド先のローカル アドレス。ソケットは接続が確立されるときにそれ自体を適切にバインドするので、通常 local-address は必要ありません。local-address または local-name を指定すると、ソケットはそのパラメータのアドレス ファミリーで通信するように制限されます。
local-port: バインド先のローカル ポートを示す uint16 のキーワード。接続が確立されるときにそれ自体で空いているポートにバインドするので、通常は必要ありません。
local-name: バインド先のローカル アドレスを探すときに使用するホスト名を示す String のキーワード。接続が確立されるときにそれ自体を適切にバインドするので、通常は必要ありません。
local-port-name: バインド先のローカル ポートを探すときに使用するポート名を示す String のキーワード。接続が確立されるときにそれ自体を空いているポートにバインドするので、通常は必要ありません。
remote-address: パケットの送信先であり、また着信パケットのフィルタリングの対象となる既定のリモート アドレスを示す
SocketInetAddress のキーワード。
remote-port または
remote-port-name と同様に、これか
remote-name を指定できます。既定のリモート アドレスおよびポートは、初期化の後に変更できます。または、リモート アドレスおよびポートは、
UDPSocket.write-packet でのパケット送信ごとに指定できます。
remote-port: パケットの送信先であり、着信パケットのフィルタリングの対象となる既定のリモート ポートを示す
uint16 のキーワード。
remote-name または
remote-address と同様に、これか
remote-port-name を指定できます。既定のリモート アドレスおよびポートは、初期化の後に変更できます。また、リモート アドレスおよびポートは、
UDPSocket.write-packet でパケット送信ごとに指定できます。
remote-name: パケットの送信先である既定のリモート アドレスを探すときに使用するホスト名を示す
String のキーワード。
remote-port または
remote-port-name と同様に、これか
remote-address を指定できます。既定のリモート アドレスおよびポートは、初期化の後に変更できます。また、リモート アドレスおよびポートは、
UDPSocket.write-packet でのパケット送信ごとに指定できます。
remote-port-name: パケットの送信先である既定のリモート ポートを探すときに使用するポート名を示す
String のキーワード。
remote-name または
remote-address と同様に、これか
remote-port を指定できます。既定のリモート アドレスおよびポートは、初期化の後に変更できます。また、リモート アドレスおよびポートは、
UDPSocket.write-packet でのパケット送信ごとに指定できます。
timeout: タイムアウトを設定するためのキーワード。
reuse-address?: TIME_WAIT 状態にあるローカル アドレスとポート名の組み合わせの再使用を許可するかどうかを示す bool のキーワード (一部のシステムでは、他のあまり推奨できない場合での再使用も許可されている可能性があります)。既定値は false です。local-name、local-address、local-port、または local-port-name が指定されている場合にのみ適用されます。
(アクセサ)
アクセサ public UDPSocket.broadcast?:
bool セッター public UDPSocket.broadcast?:
bool この UDPSocket ではブロードキャスト パケット (UDPSocket.write-packet で {SocketInetAddress SocketInetAddress.broadcast} のアドレスに送信されるパケット) の送信が有効になっているかどうかを示します。
注意事項
この既定値は false です。また、一部の OS では、何らかの管理特権なしにこれを有効にすることは許可されない可能性があります。
(アクセサ)
アクセサ public UDPSocket.event-enabled?:
bool self のイベントがモニタされる準備ができている場合は true を返します。
注意事項
(アクセサ)
アクセサ public UDPSocket.max-packet-size:
int
(アクセサ)
アクセサ public UDPSocket.receive-buffer-size:
int セッター public UDPSocket.receive-buffer-size:
int データを受け取る OS バッファのサイズ。
注意事項
データの受信速度と、接続での read 呼び出しがブロックする回数に影響します。送信できるデータのサイズまたは量には影響しません。OS が指定されたサイズを受け取らない場合もあります。
(アクセサ)
アクセサ public UDPSocket.send-buffer-size:
int セッター public UDPSocket.send-buffer-size:
int データを送信する OS バッファのサイズ。
注意事項
データの送信速度と、接続での送信がブロックする回数に影響します。送信できるデータのサイズまたは量には影響しません。OS が指定されたサイズを受け取らない場合もあります。
(メソッド)
(メソッド)
public | {UDPSocket.add-timeout-event-handler}:void |
(メソッド)
UDP パケットの着信を非同期で読み込み、パケットが読み込まれた後や失敗やタイムアウトで AsyncReadPacketSocketEvent を EventHandler へ伝えます。
timeout: 読み込みなしにこの時間が経過した場合、イベントが送られ、それ以上の読み込みは行われません。
out: 設定された場合、このバッファは各イベントで再利用されます。
n: 読み取る最大バイト数。既定値は
UDPSocket.max-packet-size です。これは、このソケットで可能な最大パケット サイズです。なお、着信パケットのサイズよりも小さい数が指定された場合、パケットは読み取り時に切り詰められます。エラーが発生するかどうかは、基礎となる OS に依存するのでわかりません。
packet-count: この async-read-packet 呼び出しで読み込まれるパケット接続の数です。既定は -1 ですが、これは永遠にパケット読み込み続けること、または失敗やタイムアウトが発生するまで読み込み続けることを意味しています。
プログラミング注意事項
readable-handler は、設定された
UDPSocket で使用されるので、同時にこれを使用すべきではありません。
導入:
バージョン 6.0
(メソッド)
(メソッド)
public | {UDPSocket.bind}:void |
ローカル アドレスおよびポートにバインドします。パラメータは UDPSocket.default またはこの呼び出しで設定できます。
プログラミング注意事項
local-address: バインド先のローカル アドレス。ソケットは接続が確立されるときにそれ自体を適切にバインドするので、通常 local-address は必要ありません。local-address または local-name を指定すると、ソケットはそのパラメータのアドレス ファミリーで通信するように制限されます。
local-port: バインド先のローカル ポートを示す
uint16 のキーワード。クライアントは、この
AcceptorTCPSocket に達するには、同じポートを指定する必要があります。
local-name: バインド先のローカル アドレスを探すときに使用するホスト名を示す String のキーワード。既定で任意のローカル アドレスでの接続が許可されるので、通常は必要ありません。
local-port-name: バインド先のローカル ポートを探すときに使用するポートの名前を示す String のキーワード。
reuse-address?: TIME_WAIT 状態にあるローカル アドレスとポート名の組み合わせの再使用を許可するかどうかを示す bool のキーワード (一部のシステムでは、他のあまり推奨できない場合での再使用も許可されている可能性があります)。既定値は false です。
(メソッド)
protected | {UDPSocket.call-handler}:void |
これは、関連するハンドラを実際に呼び出すために呼び出されます。
プログラミング注意事項
オーバーライド
サブクラスが呼び出しを抑止する必要がある場合にはオーバーライドできますが、オーバーライド側はその呼び出しが抑止されない場合にさらに super.call-handler を呼び出す必要があります。
(メソッド)
public inline | {UDPSocket.close}:void |
(メソッド)
パケットを読み取ります。remote-address および remote-port が UDPSocket.default で、またはその後の任意の時点で設定された場合は、それらに必ず一致するようにフィルタリングされます。
out: パケットのバイトの読み出し先となる {Array-of byte} キーワード。指定されない場合は作成され、いずれの場合もそれが返されます。
start: パケットの out での開始バイトのインデックスを示す int キーワード。既定値は 0 です。
n: 読み取る最大バイト数。既定値は
UDPSocket.max-packet-size です。これは、このソケットで可能な最大パケット サイズです。なお、着信パケットのサイズよりも小さい数が指定された場合、パケットは読み取り時に切り詰められます。エラーが発生するかどうかは、基礎となる OS に依存するのでわかりません。
timeout: クラスにすでに格納されている値が適切でない場合に使用されるタイムアウトの Time キーワード。
戻り値
読み取りに成功した場合は、out として、パケット データを格納した {Array-of byte} を返します。length として、読み取ったパケットの長さを示す int を返します。読み取りに失敗した場合は 0 を返します。remote-address として、パケットの送信元のアドレスの SocketInetAddress を返します。remote-port として、パケットの送信元のポートの uint16 を返します。
(メソッド)
public inline | {UDPSocket.set-remote-name remote-name:#String}:void |
リモート アドレスを名前で検索して設定して、パケットの送信先であり着信パケットのフィルタリングの対象となる既定のリモート アドレスを設定します。
remote-name: パケットの送信先のリモート アドレスを探すために検索するホスト名を示す String のキーワード。
(メソッド)
public | {UDPSocket.set-remote-port-name remote-port-name:String}:void |
名前の検索によってリモート ポートを設定して、パケットの送信先であり着信パケットのフィルタリングの対象となる既定のリモート ポートを設定します。
remote-port-name: パケットの送信先であるリモート ポートを探すために検索するポート名を示す String のキーワード。
(メソッド)
public | {UDPSocket.write-packet}:bool |
パケットを書き込みます。
data: パケットで送信するバイト数。
start: パケットの data の開始バイトのインデックスを示す int のキーワード。既定値は 0。
n: 送信するバイト数。既定値は、
data のサイズから
start を引いた大きさです。また、
UDPSocket.max-packet-size の最大値があるのでエラーが発生する可能性があります。このサイズを超えるものを送信しようとしても何も送信されない可能性があります。
remote-address: どのアドレスへパケットを送るかを示す
SocketInetAddress キーワードです。
remote-address や
remote-name が
init や後の設定で設定されている場合、前に設定した値が使用される限りこれは設定される必要がありません。
remote-port: パケットの送信先のポートを示す
uint16 キーワード。
remote-port または
remote-port-name が
init で提供されているか、後で設定されている場合は、前に設定した値を使用してはならない場合を除いて、新たに指定する必要はありません。このキーワードは
remote-port-name と相互に排他的です。
remote-name: パケットの送信先のリモート アドレスを探すために検索するホスト名を示す String のキーワード。remote-address または remote-name が init で提供されているか、後で設定されている場合は、前に設定した値を使用してはならない場合を除いて、新たに指定する必要はありません。
remote-port-name: パケットの送信先のリモート ポートを探すために検索するポートの名前を示す String キーワード。remote-port または remote-port-name が init で提供されているか、後で設定されている場合は、前に設定した値を使用してはならない場合を除いて、新たに指定する必要はありません。このキーワードは、remote-port と相互に排他的です。
timeout: クラスにすでに格納されている値が適切でない場合に使用されるタイムアウトの Time キーワード。
戻り値
パケットの送信に成功したかどうかを通知する bool を返します。