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はサーバーでなければなりません。親トピック: 会話の終了