dc_rpc_cltsend

名称

CUPへの一方通知

形式

ANSI C ,C++の形式

#include <dcrpc.h>
int  dc_rpc_cltsend(char *hostname,unsigned short port,
                   char *msg,
                   DCLONG len,DCLONG flags)

K&R版 C の形式

#include <dcrpc.h>
int  dc_rpc_cltsend(hostname,port,msg,len,flags)
char       *hostname;
unsigned  short  port;
char       *msg;
DCLONG     len;
DCLONG     flags;

機能

CUPへ一方的にデータを送ります。hostnameとportで示すホストのポート番号に対応するプロセス(CUP)に,msgで示すデータをlenで示す長さだけ送ります。送信できるデータの長さは,0からDCRPC_MAX_MESSAGE_SIZEで示すバイト長までです。

注※
rpc_max_message_sizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,rpc_max_message_sizeオペランドに指定した値になります。

dc_rpc_cltsend関数で送信したデータは,TP1/Clientのライブラリ関数dc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数で受け取られます。dc_clt_chained_accept_notification関数およびdc_clt_accept_notification関数については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。

UAPで値を設定する引数

●hostname

データを送信するホスト名を設定します。指定できるホスト名は1から255文字までの文字列です。文字列の後ろには,ヌル文字を設定してください。

●port

データを送信するポート番号を設定します。

●msg

送信するデータを設定します。

●len

送信するデータの長さを設定します。

●flags

DCNOFLAGSを設定します。

リターン値

リターン値リターン値(数値)意味
DC_OK0正常に終了しました。
DCRPCER_INVALID_ARGS-301引数に設定した値が間違っています。
DCRPCER_PROTO-302dc_rpc_open関数を呼び出していません。
DCRPCER_NO_BUFS-304メモリが不足しました。
DCRPCER_NET_DOWN-306ネットワークに障害が起こりました。
DCRPCER_MESSAGE_TOO_BIG-308送信するデータの長さが,DCRPC_MAX_MESSAGE_SIZEを超えています。
DCRPCER_SERVICE_NOT_UP-314送信先プロセスがありません。
ネットワークに障害が起こりました。
注※
rpc_max_message_sizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,rpc_max_message_sizeオペランドに指定した値になります。

注意事項

  1. dc_rpc_cltsend関数は,送信先のプロセスがTP1/Clientのdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数を呼び出していることが明らかな場合にだけ,使ってください。送信先プロセスが稼働していない場合は,dc_rpc_cltsend関数はDCRPCER_SERVICE_NOT_UP でエラーリターンします。
  2. dc_rpc_cltsend関数の正常リターンは,RPCの通信プロトコル(TCP/IP)レベルでの送信が完了したことを意味します。そのため,dc_rpc_cltsend関数が正常に終了しても,CUPがdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数でデータを正常に受信したことを確認できません。
  3. dc_rpc_cltsend関数でデータを通知できるのは,CUPのdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数だけです。SPPのプロセスや自プロセスへは,データを送信できません。