手順
TCPソケットサーバーアプリケーションを実装するには、次の手順に従います。
- たとえば、APC TCP Socket拡張クラスを実装しますYCL_APC_TCP_EXT_YTCP_TEST(サンプルのAPC TCP Socketアプリケーションの場合YTCP_TEST)。
- TCPソケット通信用にTCP/TCPSポートを構成します。
1.拡張クラスの実装
たとえば、APC TCP Socket拡張クラスの基本的な実装ではYCL_APC_TCP_EXT_YTCP_TEST、次の手順を実行する必要があります。
- SAPCでAPCアプリケーションを作成したら、生成された拡張クラスをダブルクリックします。
- これで、クラスがクラスビルダーに表示されます。表示モードを変更に変更します。
- 拡張クラスは抽象クラスから継承されるため、メソッドON_CONNECTION_SETUP、ON_START 、およびON_MESSAGEが実装されます。これらのメソッドを再定義する必要があります。これを行うには、それぞれのメソッドにマークを付け、メニューバーで[メソッドの再定義]を選択します。
-
ON_CONNECTION_SETUPメソッドは、TCPソケット接続のセットアップフェーズ中に実行されます。WebSocketサーバーアプリケーションとは対照的に、TCPソケットサーバーアプリケーションは、このTCPソケット接続で交換されるメッセージのフレーム設定を指定するために、APCランタイムにTCPソケットフレーム構造を提供する必要があります。これはこの方法で行われます。
次の例では、ON_CONNECTION_SETUP中に処理される唯一のアクションは、このTCPソケット接続で予期されるメッセージのフレーム設定を提供することです。ここでは、ターミネータフレームタイプが選択されています。アプリケーションはそれを0A、つまりラインフィード(LF)に設定します。
-
ON_STARTメソッドは、TCPソケット接続のセットアップフェーズが正常に完了するとすぐに実行されます。
サンプルコードでは、ON_STARTの実行中に処理されるアクションは、TCPソケットクライアントへのテキストメッセージの送信です。
-
ON_MESSAGEメソッドは、メッセージの受信時に実行されます。
この例では、メッセージテキストと受信メッセージの両方がTCPソケットクライアントに送信されます。
オプションで、メソッドON_ACCEPT、ON_CLOSE、およびON_ERRORを再定義することもできます。
-
ON_ACCEPT:アプリケーションは、接続を受け入れるか拒否するかを確認できます。このメソッドは、ON_CONNECTION_SETUPおよびON_STARTを呼び出す前に実行されます。
-
ON_CLOSE:このメソッドは、接続を閉じる前に呼び出されます。リソースのクリーンアップに使用される可能性があります。
-
ON_ERROR:このメソッドは、エラーが原因で接続が中断されたときに呼び出されます。ON_ERRORが正常に実行されると、メソッドON_CLOSEが実行されます。
-
- 再定義された各メソッドをクラスビルダーに保存します。
- クラスビューに戻り、クラスをアクティブ化して([アクティブ化]を選択)、クラスビルダーを終了します。
- オプションで、着信メッセージと発信メッセージのウイルススキャンIDをいつでも維持できます。
- 変更ABAPプッシュチャネルアプリケーションビューに戻り、APCアプリケーションを有効化します(有効化を選択します)。
- TCPソケットサーバーアプリケーションをテストできます。これを行うには、外部TCPソケットクライアントが必要です。たとえば、Linuxオペレーティングシステムの場合はnetcat 、Windowsオペレーティングシステムの場合はncatです。
2.TCPソケットポートの構成
TCPソケットアプリケーションの接続を受け入れるには、TCPポートを確立する必要があります。TCP / TCPSポートを構成するには、次の手順に従います。
- 開発されたTCPソケットアプリケーションを参照するトランザクションSICFを使用して外部エイリアスを作成します。
たとえば、アプリケーションに関連付けられているパスエントリ/ sap / bc / apc / sap / ytcp_test(ICFサービス)を参照し/ytcp_testて、TCPソケットアプリケーションの外部エイリアスを作成しました。YTCP_TEST
- ログオン手順を[ログオンデータで必須]に設定します。
- 有効なログオンデータを入力してください。
- 次のように、TCPポートをプロファイルパラメータicm /server_port_<xx>として設定します。
icm / server_port_ <number> = PORT = <port>、PROT = <TCPまたはTCPS>、URL = <外部エイリアス>?<optional_parameter1 = some_information_for_the_application&optional_parameter1 = additional_information>
サンプルアプリケーションのYTCP_TEST場合、プロファイルパラメータは次のようになります。
icm / server_port_77 = PORT = 1234、PROT = TCP、URL = / ytcp_test
または、トランザクションSMICMを使用してTCPポートを設定することもできます。これを行うには、 を選択して、対応するTCPサービスを作成します。