#include <dcvclt.h>
DCLONG dc_clt_assem_receive_s(DCCLT_ID cltid, char CLTFAR *buff, DCLONG CLTFAR *recvleng,
DCLONG timeout, DCLONG flags)
#include <dcvclt.h>
DCLONG dc_clt_assem_receive(char CLTFAR *buff, DCLONG CLTFAR *recvleng,
DCLONG timeout, DCLONG flags)
メッセージの組み立て機能を使用して,メッセージを受信します。この場合,4バイトのメッセージ情報を受信したあと,メッセージ情報に設定されたメッセージ長分のメッセージを受信し,引数buffに格納します。ただし,メッセージ情報は,引数buffには格納しません。引数recvlengには,受信したメッセージ長を格納します。引数recvlengに格納するメッセージ長には,メッセージ情報の長さは含みません。
また,クライアント環境定義DCCLTDELIVERYCHECKにYを指定した場合は,メッセージの送達確認機能を使用して,メッセージを送受信します。この場合,11バイトのメッセージ情報を受信したあと,メッセージ情報に設定されたメッセージ長分のメッセージを受信し,引数buffに格納します。ただし,メッセージ情報は,引数buffには格納しません。引数recvlengには,受信したメッセージ長を格納します。引数recvlengに格納するメッセージ長には,メッセージ情報の長さは含みません。受信したメッセージ情報に「応答要求」が設定されていた場合は,11バイトのメッセージ情報を送信したあと,CUPに制御を戻します。
この関数を実行する場合,引数flagsにDCCLT_ONEWAY_RCV,またはDCCLT_SNDRCVを指定したdc_rpc_open_s関数を,あらかじめ実行しておく必要があります。
リターン値 | 数値 (10進数) | 意味 |
---|---|---|
DC_OK | 0 | 正常に終了しました。 |
DCCLTER_INVALID_ARGS | -2501 | 引数に指定した値が誤っています。 |
DCCLTER_PROTO | -2502 | 次のどちらかの要因が考えられます。
|
DCCLTER_NO_BUFS | -2504 | メモリ不足が発生しました。 |
DCCLTER_NET_DOWN | -2506 | ネットワーク障害が発生しました。コネクションは解放されます。 |
DCCLTER_TIMED_OUT | -2507 | メッセージの受信時にタイムアウトになりました。コネクションは解放されます。 |
DCCLTER_SYSERR | -2518 | システムエラーが発生しました。ネットワーク障害の場合,コネクションは解放されます。 |
DCCLTER_RESOURCE | -2538 | 資源不足が発生しました。 |
DCCLTER_CONNFREE | -2542 | 相手システムからコネクションが解放されました。 |
DCCLTER_INVALID_CLTID | -2544 | 引数cltidに指定したクライアントIDは,dc_clt_cltin_s関数で受け取ったクライアントIDと異なっています。 |
DCCLTER_INF_TOO_BIG | -2546 | CUPで用意した領域が小さく,相手システムからのメッセージを受信することができません。コネクションは解放されます。 |
DCCLTER_INVALID_MESSAGE | -2548 | 不正なメッセージを受信しました。コネクションは解放されます。 |