dc_rpc_cltsend
形式
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_OK |
0 |
正常に終了しました。 |
|
DCRPCER_INVALID_ARGS |
-301 |
引数に設定した値が間違っています。 |
|
DCRPCER_PROTO |
-302 |
dc_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オペランドに指定した値になります。
注意事項
-
dc_rpc_cltsend関数は,送信先のプロセスがTP1/Clientのdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数を呼び出していることが明らかな場合にだけ,使ってください。送信先プロセスが稼働していない場合は,dc_rpc_cltsend関数はDCRPCER_SERVICE_NOT_UP でエラーリターンします。
-
dc_rpc_cltsend関数の正常リターンは,RPCの通信プロトコル(TCP/IP)レベルでの送信が完了したことを意味します。そのため,dc_rpc_cltsend関数が正常に終了しても,CUPがdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数でデータを正常に受信したことを確認できません。
-
dc_rpc_cltsend関数でデータを通知できるのは,CUPのdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数だけです。SPPのプロセスや自プロセスへは,データを送信できません。
-
hostnameとportが示す1つのCUPに対し,複数のプロセスから同時にデータを送信する場合,送信するデータの長さは32,656バイトを超えないようにしてください。次の条件がすべて重なった場合,CUPが受信データを破棄してしまうことがあります。
-
1つのCUPに対し,複数のプロセスから同時にデータを送信する。
-
1つのCUPに対し,複数のプロセスから同時に送信するデータの中に,32,656バイトを超えるデータが存在する。
-
32,656バイトを超えるデータの送信処理中に,一時クローズ処理が実行される。
-