#include <dcvxatmi.h>
int tprecv(DCLONG cd, char *CLTFAR *data,
DCLONG CLTFAR *len,
DCLONG flags, DCLONG CLTFAR *revent)
#include <dcvxatmi.h>
int tprecv(DCLONG cd, char CLTFAR *CLTFAR *data,
DCLONG CLTFAR *len,
DCLONG flags, DCLONG CLTFAR *revent)
会話型サービスから送信されたデータを受信します。
tprecv関数は,コネクションの制御権を持たない側から発行できます。
tprecv関数が,reventにTPEV_SVCSUCCか,TPEV_SVCFAILを指定してリターンした場合,アプリケーションがtpreturn関数の引数として渡した値は,グローバル変数tpurcodeとして参照できます。
エラー時には,tprecv関数は-1をリターンし,リターン値としてエラー情報を示す次のどれか一つの値を,tperrnoに設定します。
リターン値 | 意味 |
---|---|
TPEINVAL | 引数に誤りがあります。 |
TPEBADDESC | cdで,誤った記述子を指定しています。 |
TPEOTYPE | 到着したバッファの型を,tprecv関数を呼び出した側で認識していません。または,flagsにTPNOCHANGEを指定しているのに,dataに指定したバッファの型が送信されてきたバッファの型と一致していません。 上記のどちらの場合もdataおよびlenの値は変更されません。tprecv関数を呼び出した側のトランザクションとしてサービスが実行されている場合は,到着したバッファを捨てるまで,トランザクションはロールバックします。 上記のエラー発生時,指定されたイベントは捨てられ,サービスの処理結果は未決着になります。発行側では,すぐにサービスを終了してください。 |
TPETIME | タイムアウトが発生しました。
|
TPEEVENT | イベントが発生しました。リターン値はreventに返されます。 |
TPEBLOCK | TPNOBLOCKを指定したtprecv関数を呼び出したときに,ブロッキング状態になりました。 |
TPGOTSIG | シグナルは受信されましたが,TPSIGRSTRTを指定していません。 |
TPEPROTO | tpdiscon関数を呼び出したときの状態が適切ではありません。 |
TPESYSTEM | コミュニケーションリソースマネジャでエラーが発生しました。 |
TPEOS | オペレーティングシステムでエラーが発生しました。 |