持続中断のプロトコル と Sockets パッケージ
|
説明
|
|
•
|
Sockets パッケージにあるいくつかのルーチンは、デフォルトではいつまでもブロックを行います。多くの場合、追加の timeout 引数を受け渡すことで、あるルーチンがブロックを行う時間に制限を設けることが可能です。timeout 引数は、データの有効性を待つ間、ブロックを行う秒数を指示します。この時間を超えると、ルーチンは値 false を返します。
|
•
|
いくつかの場合では、ブロックを行うルーチンに対して、それぞれに全ての呼び出し側で timeout の値を保持することは、都合が悪い(またエラーを引き起こしやすい)状態になります。このため、このような種類のルーチンのほとんどは、「持続中断のプロトコル」に従います。
|
•
|
手続き Configure を timeout オプションと共に使用することで、ソケット接続に「持続中断」の値を設定することが可能です。timeout オプションのデフォルトの値は、-1 です。これは、その接続に持続中断の値を設定しないということを意味します。
|
•
|
Configure( sid, 'timeout' = secs ) の形式の呼び出しを用いて、ある接続に対して持続中断の設定を行うことが可能です。ここで、sid は設定を行いたい接続のソケット ID、secs はブロックに対して設定する持続中断の秒数を表します。その接続上で後で呼び出されるルーチンすべてについて、secs の指定は、オプションパラメータ timeout と本質的に等しいものです。しかし、持続中断の値は、呼び出し側の一時的な中断の指定を無視することが可能です。
|
•
|
持続中断の値は、Configure( sid, 'timeout' = -1 ) を用いてオプションの値を -1 に設定することで、ソケットの接続から削除が可能です。
|
|
|
例
|
|
デフォルトでは、接続上に持続中断の設定は行われていません。
>
|
with( Sockets ):
sid := Open( "localhost", "echo" );
|
| (2.1) |
>
|
Configure( sid, 'timeout' );
|
| (2.2) |
|
|
Download Help Document
Was this information helpful?