2008年7月8日火曜日

IPDaemon/IPPort の SendFile(...) と Timeout

IPDaemon や IPPort では、V8 から SendFile(...) メソッドをサポートしています。
これを使うことで、ファイルに格納されたデータをまとめて送信することができ大変便利です。

ただし、IPDaemon や IPPort の設定を既定値のまま SendFile(...) を使用すると IPWorksException (code=702; message="This operation cannot be performed in a non-blocking manner.") が発生してしまいます。

これは、IPDaemon および IPPort では既定値では Timeout は 0 になっており、非同期動作するように構成されているためです。SendFile を使用する際には Timeout 値に適当な正の整数値を指定してからお使いください。

また、IPDaemon では Timeout 値の設定には2つの方法があります。
  • DefaultTimeout プロパティを使用して、全てのコネクションの既定値として設定する方法。こちらの場合は、コネクションの生成前に値を設定しておく必要があります。
  • コネクションごとに Timeout を設定する方法。こちらの場合は、コネクション生成後でも必要に応じて当該コネクションの Timeout フィールドの値を設定・変更することが可能です。

状況に応じてこの2つの方法を使い分けることが可能です。

0 件のコメント: