7.5.1 例: 単純な会話の終了
次の図は、正常に終了するAとB間の単純な会話を示しています。
図7-2 正常に終了する単純な会話

次の順序で処理が行われます。
- Aは、TPSENDONLYフラグでtpconnect()を呼び出して接続を設定します。このフラグは、Bが会話の受信側であることを示します。
- AはTPRECVONLYフラグでtpsend()を呼び出して、接続の制御をBに移します。その結果、TPEV_SENDONLYイベントが生成されます。
- Bが次にtprecv()を呼び出すと-1が返され、tperrno(5)にTPEEVENTが設定されます。revent引数にTPEV_SENDONLYが返されて、制御がBに移ったことが示されます。
- Bは、rvalにTPSUCCESSを設定してtpreturn()を呼び出します。この呼出しより、Aに対してTPEV_SVCSUCCイベントが生成され、接続が正常に切断されます。
- Aは、tprecv()を呼び出して、イベントが発生したことと会話が終了したことを認識します。イベントTPEV_SVCFAILが発生した場合でも、このtprecv()への呼出しでデータを受信できます。
ノート:
この例では、Aはクライアントまたはサーバーのどちらでもかまいませんが、Bはサーバーでなければなりません。親トピック: 会話の終了