2.4.5 ユースケースごとの設定方法とポートの割り当て
TCP/IP通信機能の主なユースケースを次の表に示し,それぞれのユースケースの設定方法とポートの割り当てについて説明します。ユースケースごとの設定方法と使用するポート番号を(5)に示します。
項番 |
ユースケース |
---|---|
1 |
MHPがサーバ型でメッセージの一方送信を行う場合 |
2 |
MHPがクライアント型でメッセージの一方受信を行う場合 |
3 |
MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合 |
4 |
MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合 |
- 〈この項の構成〉
(1) MHPがサーバ型でメッセージの一方送信を行う場合
メッセージの一方送信を次の図に示します。
|
メッセージの一方送信は,CUP.NETから接続先のポートに対してコネクションを確立し,メッセージの送信を行います。メッセージの一方送信を行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
接続先のノード名を次のどちらかの方法で指定
(a) Sendメソッド,またはSendAssembledMessageメソッドの引数hostnameに指定
(b) Client .NET構成定義の<tcpip>要素のsendHost属性にMHPが存在するノードのホスト名を指定
-
接続先のポート番号を次のどちらかの方法で指定
(a) Sendメソッド,またはSendAssembledMessageメソッドの引数portnumに指定
(b) Client .NET構成定義の<tcpip>要素のsendPort属性に指定
-
Client .NET構成定義の<tcpip>要素のtype属性にsendを指定
接続先のノード名,またはポート番号がCUP.NETごとに異なる場合は,CUP.NETごとに設定を変更してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。
(2) MHPがクライアント型でメッセージの一方受信を行う場合
メッセージの一方受信を次の図に示します。
|
メッセージの一方受信は,MHPからCUP.NETに割り当てられた受信用ポートに対してコネクションを確立し,メッセージの送信を行います。
メッセージの一方受信を行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
Client .NET構成定義の<tcpip>要素のrecvPort属性にCUP.NETの受信用ポート番号(MCF通信構成定義の定義コマンドmcftalccnのoportnoで指定したポート番号)を指定
-
Client .NET構成定義の<tcpip>要素のtype属性にrecvを指定
-
Client .NET構成定義の<tcpip>要素のopenPortAtRecv属性にfalseを指定,または指定を省略
マルチスレッドで動作するCUP.NETを含め,同一マシンでCUP.NETを複数実行する場合は,Client .NET構成定義の<tcpip>要素のrecvPort属性をCUP.NETごと(スレッドごと)に異なるポート番号となるように設定してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。
(3) MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合
MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合を次の図に示します。
|
MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合,CUP.NETから接続先のポートに対してコネクションを確立し,そのコネクションを使用してメッセージを送受信するため,CUP.NETでは受信用のポートを使用しません。そのため,Client .NET構成定義の<tcpip>要素のrecvPort属性を設定する必要はありません。
MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
接続先のノード名を次のどちらかの方法で指定
(a) Sendメソッド,またはSendAssembledMessageメソッドの引数hostnameに指定
(b) Client .NET構成定義の<tcpip>要素のsendHost属性にMHPが存在するノードのホスト名を指定
-
接続先のポート番号を次のどちらかの方法で指定
(a) Sendメソッド,またはSendAssembledMessageメソッドの引数portnumに指定
(b) Client .NET構成定義の<tcpip>要素のsendPort属性に指定
-
Client .NET構成定義の<tcpip>要素のopenPortAtRecv属性にtrueを指定
-
Client .NET構成定義の<tcpip>要素のtype属性にsendrecvを指定
-
Sendメソッド,またはSendAssembledMessageメソッドの引数flagsにDCNOFLAGSを指定
接続先のノード名,またはポート番号がCUP.NETごとに異なる場合は,CUP.NETごとに設定を変更してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。
- 注意事項
-
何らかの障害が発生しコネクションが切断された場合,Receiveメソッド,およびReceiveAssembledMessageメソッドを実行しないでください。コネクションの切断を検知した場合は,Sendメソッド,またはSendAssembledMessageメソッドを再実行し,コネクションを確立してからメッセージを受信してください。
(4) MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合
MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合を次の図に示します。
|
MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合,MHPからCUP.NETに割り当てられた受信用ポートに対してコネクションを確立し,そのコネクションを使用してメッセージを送受信します。
MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。
-
Client .NET構成定義の<tcpip>要素のrecvPort属性にCUP.NETの受信用ポート番号(MCF通信構成定義の定義コマンドmcftalccnのoportnoで指定したポート番号)を指定
-
Client .NET構成定義の<tcpip>要素のopenPortAtRecv属性にfalseを指定,または指定を省略
-
Client .NET構成定義の<tcpip>要素のtype属性にsendrecvを指定
-
Receiveメソッド,またはReceive AssembledMessageメソッドの引数flagsにDCNOFLAGSを指定
マルチスレッドで動作するCUP.NETを含め,同一マシンでCUP.NETを複数実行する場合は,Client .NET構成定義の<tcpip>要素のrecvPort属性をCUP.NETごと(スレッドごと)に異なるポート番号となるように設定してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。
(5) ユースケースごとの設定方法と使用するポート番号
項番 |
ユースケース |
Client .NET構成定義 <tcpip>要素 |
提供APIの発行順序※3 |
CUP.NETの使用ポート番号 |
|||||
---|---|---|---|---|---|---|---|---|---|
openPortAtRecv属性 |
sendHost属性 ※1 |
sendPort属性 ※2 |
recvPort属性 |
type属性 |
送信 |
受信 |
|||
1 |
MHPがサーバ型でメッセージの一方送信を行う場合,詳細は2.4.5(1)を参照してください。 |
- |
接続先のノード名 |
接続先のポート番号 |
- |
send |
Send |
OS自動割り当て |
使用しない |
2 |
MHPがクライアント型でメッセージの一方受信を行う場合,詳細は2.4.5(2)を参照してください。 |
falseまたは省略 |
- |
- |
CUP.NETのポート番号 |
recv |
Receive |
使用しない |
recvPort属性の値 |
3 |
MHPがサーバ型で送受信を1本のコネクションで行う場合,詳細は2.4.5(3)を参照してください。 |
true※4 |
接続先のノード名 |
接続先のポート番号 |
- |
sendrecv |
Send※5→Receive |
OS自動割り当て |
使用しない |
4 |
MHPがクライアント型で送受信を1本のコネクションで行う場合,詳細は2.4.5(4)を参照してください。 |
falseまたは省略※6 |
- |
- |
CUP.NETのポート番号 |
Receive※7→Send |
使用しない |
recvPort属性の値 |
- (凡例)
-
−:該当しません。
- 注※1
-
接続先のノード名は,Sendメソッド,およびSendAssembledMessageメソッドの引数hostnameに指定することもできます。
- 注※2
-
接続先のポート番号は,Sendメソッド,およびSendAssembledMessageメソッドの引数portnumに指定することもできます。
- 注※3
-
表中のSendメソッドは,SendAssembledMessageメソッドを含みます。また,Receiveメソッド は,ReceiveAssembledMessageメソッドを含みます。
- 注※4
-
openPortAtRecv属性にfalseを指定する,または省略する設定は,受信用のポートを余分に割り当てるため推奨しません。
- 注※5
-
Sendメソッド,およびSendAssembledMessageメソッドの引数flagsにはDCNOFLAGSを指定してください。
- 注※6
-
openPortAtRecv属性にtrueを指定する設定は,MHPとのコネクション確立の同期をユーザ処理で実装する必要があるため推奨しません。
- 注※7
-
Receiveメソッド,およびReceiveAssembledMessageメソッドの引数flagsにはDCNOFLAGSを指定してください。