NW 22 - Error -3168 (kOTStateChangeErr) と Handoff Endpoints (96 年 4 月 8 日)
Q: ハンドオフ終端に接続を渡すサーバ終端をインプリメントしました。サーバが OTAccept 呼び出しを使って接続リクエストを処理した後、ハンドオフ終端に対する非同期ハンドラを T_DATA イベントに渡します。しかし、このハンドラから OTRcv 呼び出しを行うと、error -3168, (kOTStateChangeErr) が返されます。これはどういうことなのですか。
A: この問題は、ハンドオフ (2 次) 終端に関連してのみ発生します。Open Transport のインプリメントにより、接続メカニズムが完了する前に、非同期ハンドオフ終端が T_DATA イベントを受信することが可能になります。接続が受け入れられると、非同期リスナ終端では、T_ACCEPTCOMPLETE イベントを受信することが期待されます。一方、"受け入れ" またはハンドオフ終端では、T_PASSCON イベントを受信することが期待されます。
ハンドオフ終端では、T_PASSCON イベントを受信する前に T_DATA イベントを受信することが可能です。このような状況が発生すると、フラグがセットされ、データの受信が遅延されます。T_PASSCON イベントを受信すると、フラグをチェックし、フラグがセットされている場合は OTRcv 呼び出しを実行します (T_DATA イベントの処理を遅延すると、現在使用可能なすべてのデータを処理 (読み込み) するまで、このイベントはハンドラに通知されなくなります)。
[ Technical Q&A's : Communications & Collaboration : Networking : NW22 ]
|