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が提供する次のAPIで受け取ることができます。
-
TP1/Client/W,TP1/Client/Pの場合
dc_clt_accept_notification関数
dc_clt_accept_notification_s関数
dc_clt_chained_accept_notification関数
dc_clt_chained_accept_notification_s関数
CBLDCCLS('NOTIFY ')
CBLDCCLS('A-NOTIFY')
CBLDCCLS('EXNACPT ')
CBLDCCLS('EXNCACPT')
-
TP1/Client/Jの場合
acceptNotificationメソッド
acceptNotificationChainedメソッド
-
TP1/Client for .NET Frameworkの場合
AcceptNotificationメソッド
AcceptNotificationChainedメソッド
TP1/Clientのライブラリが提供するAPIについては,次の各製品マニュアルを参照してください。
-
マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」
-
マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/J編」
-
マニュアル「TP1/Client for .NET Framework 使用の手引」
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関数の正常リターンは,RPCの通信プロトコル(TCP/IP)レベルでの送信(データ受け渡し)が完了したことを意味します。そのため,dc_rpc_cltsend関数が正常にリターンしても,CUPがデータを正常に受信していないおそれがあります。したがって,CUPが受信可能なTP1/ClientのAPIを呼び出していることが明らかな場合にだけ,dc_rpc_cltsend関数を発行してください。
-
CUPが稼働していない場合は,DCRPCER_SERVICE_NOT_UPでエラーリターンします。
-
dc_rpc_cltsend関数によるデータ送信先に指定できるのはCUPだけです。SPPのプロセスや自プロセスへは,データを送信できません。
-
hostnameとportが示す1つのCUPに対し,複数のプロセスから同時にデータを送信する場合,送信するデータの長さは32,656バイトを超えないようにしてください。次の条件がすべて重なった場合,CUPが受信データを破棄してしまうことがあります。
-
1つのCUPに対し,複数のプロセスから同時にデータを送信する。
-
1つのCUPに対し,複数のプロセスから同時に送信するデータの中に,32,656バイトを超えるデータが存在する。
-
32,656バイトを超えるデータの送信処理中に,一時クローズ処理が実行される。
-