2.5.5 ユースケースごとの設定方法とポートの割り当て
TCP/IP通信機能の主なユースケースを表2-7に示し,それぞれのユースケースの設定方法とポートの割り当てについて説明します。ユースケースごとの設定方法と使用するポート番号を表2-8に示します。
項番 |
ユースケース |
---|---|
1 |
MHPがサーバ型でメッセージの一方送信を行う場合 |
2 |
MHPがクライアント型でメッセージの一方受信を行う場合 |
3 |
MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合 |
4 |
MHPがクライアント型でメッセージの送受信を一つのコネクションで行う場合 |
- 〈この項の構成〉
(1) MHPがサーバ型でメッセージの一方送信を行う場合
メッセージの一方送信を次の図に示します。
メッセージの一方送信は,CUPから接続先のポートに対してコネクションを確立しメッセージの送信を行います。
メッセージの一方送信を行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
接続先のノード名を次のどちらかの方法で指定します。
(a) dc_clt_send_s関数,またはdc_clt_assem_send_s関数の引数hostnameに指定
(b) クライアント環境定義DCSNDHOSTに指定
-
接続先のポート番号を次のどちらかの方法で指定します。
(a) dc_clt_send_s関数,またはdc_clt_assem_send_s関数の引数portnumに指定
(b) クライアント環境定義DCSNDPORTに指定
-
dc_rpc_open_s関数の引数flagsにDCCLT_ONEWAY_SNDを指定します。
接続先のノード名,またはポート番号がCUPごとに異なる場合は,CUPごとに設定を変更してください。CUPごとのクライアント環境定義の設定方法については,「8.2.3 TP1/Client/Wの設定方法」,および「8.2.4 TP1/Client/Pの設定方法」を参照してください。
(2) MHPがクライアント型でメッセージの一方受信を行う場合
メッセージの一方受信を次の図に示します。
メッセージの一方受信は,MHPからCUPに割り当てられた受信用ポートに対してコネクションを確立し,メッセージの送信を行います。
メッセージの一方受信を行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
クライアント環境定義DCRCVPORTに,CUPの受信用ポート番号(MCF通信構成定義の定義コマンドmcftalccnのoportnoで指定したポート番号)を指定します。
-
dc_rpc_open_s関数の引数flagsにDCCLT_ONEWAY_RCVを指定します。
マルチスレッドで動作するCUPを含め,同一マシンでCUPを複数実行する場合は,クライアント環境定義DCRCVPORTをCUPごと(スレッドごと)に異なるポート番号となるように設定してください。CUPごとのクライアント環境定義の設定方法については,「8.2.3 TP1/Client/Wの設定方法」,および「8.2.4 TP1/Client/Pの設定方法」を参照してください。
(3) MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合
MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合を次の図に示します。
MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合,CUPから接続先のポートに対してコネクションを確立します。そのコネクションを使用してメッセージを送受信するため,CUPでは受信用のポートを使用しません。そのため,クライアント環境定義DCRCVPORTオペランドを設定する必要はありません。
MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
接続先のノード名を次のどちらかの方法で指定します。
(a) dc_clt_send_s関数,またはdc_clt_assem_send_s関数の引数hostnameに指定
(b) クライアント環境定義DCSNDHOSTに指定
-
接続先のポート番号を次のどちらかの方法で指定します。
(a) dc_clt_send_s関数,またはdc_clt_assem_send_s関数の引数portnumに指定
(b) クライアント環境定義DCSNDPORTに指定
-
クライアント環境定義DCSOCKOPENATRCVオペランドにYを指定します。
-
dc_rpc_open_s関数の引数flagsにDCCLT_SNDRCVを指定します。
-
dc_clt_send_s関数,またはdc_clt_assem_send_s関数の引数flagsにDCNOFLAGSを指定します。
接続先のノード名,またはポート番号がCUPごとに異なる場合は,CUPごとに設定を変更してください。CUPごとのクライアント環境定義の設定方法については,「8.2.3 TP1/Client/Wの設定方法」,および「8.2.4 TP1/Client/Pの設定方法」を参照してください。
- 注意事項
-
何らかの障害が発生しコネクションが切断された場合,dc_clt_receive_s関数,dc_clt_receive2_s関数,およびdc_clt_assem_receive_s関数を実行しないでください。コネクションの切断を検知した場合は,dc_clt_send_s関数,またはdc_clt_assem_send_s関数を再実行し,コネクションを確立してからメッセージを受信してください。
(4) MHPがクライアント型でメッセージの送受信を一つのコネクションで行う場合
MHPがクライアント型でメッセージの送受信を一つのコネクションで行う場合を次の図に示します。
MHPがクライアント型でメッセージの送受信を一つのコネクションで行う場合,MHPからCUPに割り当てられた受信用ポートに対してコネクションを確立します。そのコネクションを使用してメッセージを送受信します。
MHPがクライアント型でメッセージの送受信を一つのコネクションで行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
クライアント環境定義DCRCVPORTに,CUPの受信用ポート番号(MCF通信構成定義の定義コマンドmcftalccnのoportnoで指定したポート番号)を指定します。
-
クライアント環境定義DCSOCKOPENATRCVオペランドにNを指定,または指定を省略します。
-
dc_rpc_open_s関数の引数flagsにDCCLT_SNDRCVを指定します。
-
dc_clt_receive_s関数,dc_clt_receive2_s関数,またはdc_clt_assem_receive_s関数の引数flagsにDCNOFLAGSを指定します。
マルチスレッドで動作するCUPを含め,同一マシンでCUPを複数実行する場合は,クライアント環境定義DCRCVPORTをCUPごと(スレッドごと)に異なるポート番号となるように設定してください。CUPごとのクライアント環境定義の設定方法については,「8.2.3 TP1/Client/Wの設定方法」,および「8.2.4 TP1/Client/Pの設定方法」を参照してください。
項番 |
ユースケース |
クライアント環境定義のオペランド |
提供APIの使用方法 |
CUPの使用ポート番号 |
|||||
---|---|---|---|---|---|---|---|---|---|
DCSOCKOPENATRCV |
DCSNDHOST※1 |
DCSNDPORT※1 |
DCRCVPORT |
dc_rpc_open_s関数のフラグ |
発行順序※2 |
送信 |
受信 |
||
1 |
MHPがサーバ型でメッセージの一方送信を行う場合 詳細については,「2.5.5(1) MHPがサーバ型でメッセージの一方送信を行う場合」を参照してください。 |
− |
接続先のノード名 |
接続先のポート番号 |
− |
DCCLT_ONEWAY_SND |
dc_clt_send_s |
OS自動割り当て |
使用しない |
2 |
MHPがクライアント型でメッセージの一方受信を行う場合 詳細については,「2.5.5(2) MHPがクライアント型でメッセージの一方受信を行う場合」を参照してください。 |
− |
− |
CUPのポート番号 |
DCCLT_ONEWAY_RCV |
dc_clt_receive_s |
使用しない |
DCRCVPORTの値 |
|
3 |
MHPがサーバ型で送受信を一本のコネクションで行う場合詳細については,「2.5.5(3) MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合」を参照してください。 |
Y※3 |
接続先のノード名 |
接続先のポート番号 |
− |
DCCLT_SNDRCV |
dc_clt_send_s※5 → dc_clt_receive_s |
OS自動割り当て |
使用しない |
4 |
MHPがクライアント型で送受信を一本のコネクションで行う場合詳細については,「2.5.5(4) MHPがクライアント型でメッセージの送受信を一つのコネクションで行う場合」を参照してください。 |
N,または省略※4 |
− |
− |
CUPのポート番号 |
dc_clt_receive_s※6 → dc_clt_send_s |
使用しない |
DCRCVPORTの値 |