このページは、2019年3月に保存されたアーカイブです。最新の内容ではない場合がありますのでご注意ください


(C++Builder5)
●TNMUDPコンポーネントで受信ポート番号を動的に指定する



◆解説

 例えば、UDPによる通信における受信ポート番号を、設定ファイルから取得して設定したいとする。

 C++Builderの仕様として、TNMUDPコンポーネントではLocalPortの指定ができるのは設計時のみである。
 設計時とは、コンパイルする前に「オブジェクトインスペクタ」のプロパティで「LocalPort」に値を入力しておくという意味である。

 これを、TNMUDPをプログラムの中で動的に生成するようにすると、LocalPortの指定が一度だけできる。
 こうすることで、受信ポート番号をプログラム中で設定することが可能になる。

 なお、送信ポート番号であるRemotePortは何度でも動的に設定できる。



◆重要な注意点

・TNMUDPなどのコンポーネントを複数使用している場合

 指定したポート番号が、既に他コンポーネントのLocalPortやRemotePortで指定されていると、動作しない。
 コンポーネントのLocalPortやRemotePortが実際に使用されているかどうかにかかわらない。

 重複しているポート番号は、別の番号に変えてやる必要がある。



◆プログラム例

  1. フィールドの作成

    ヘッダファイル内に変数宣言を記述する。


    クラスエクスプローラを使用すると良い。
    クラスエクスプローラで「フィールドの作成」を選択する。
    型を「TNMUDP*」とし、変数名を「udp」などとして作成する。


  2. TNMUDPの生成を記述


    上記のほか、必要なプロパティを記述する。


  3. TNMUDPの削除を記述

    newの時に引数をNULLとした場合は、作成されたインスタンスを(Ownerの状態にかかわらず)
    自前の実装でdeleteする必要がある。


    newの時に引数がNULLでない場合は、OwnerがdeleteされるとOwnerを指定したものも自動でdeleteされるので、実装する必要はない。


  4. インクルード

    TNMUDPコンポーネントを使用するには、下記のようなインクルードが必要である。





このページは、2019年3月に保存されたアーカイブです。最新の内容ではない場合がありますのでご注意ください