![]() ![]() ![]()
|
SophiaFramework 2.2 |
#include <SFUIPEndpoint.hpp>
class SFUIPEndpoint;
typedef SFUIPEndpoint& SFUIPEndpointRef; typedef SFUIPEndpoint* SFUIPEndpointPtr; typedef SFUIPEndpoint** SFUIPEndpointHandle; typedef const SFUIPEndpoint ConstSFUIPEndpoint; typedef const SFUIPEndpoint& ConstSFUIPEndpointRef; typedef const SFUIPEndpoint* ConstSFUIPEndpointPtr; typedef const SFUIPEndpoint** ConstSFUIPEndpointHandle;
SFUIPEndpoint は IP アドレスとポート番号のペアを表します。
SFUIPEndpoint はエンドポイント文字列で表現することができます。 エンドポイント文字列とは "nnn.nnn.nnn.nnn" または "nnn.nnn.nnn.nnn:port" の形式の文字列で、 n は IP アドレスの 10 進数表記、port はポート番号の 10 進数表記です。
| コンストラクタ/デストラクタ | ||
|---|---|---|
| public |
SFUIPEndpoint | SFUIPEndpoint クラスのコンストラクタです。 |
| public |
~SFUIPEndpoint | SFUIPEndpoint クラスのデストラクタです。 |
| パブリック関数 | ||
|---|---|---|
| public |
Address | IP アドレスを取得/設定します。 |
| public |
Equal | 2 つのエンドポイントが等しいか判定します。 |
| public |
Port | ポート番号を取得/設定します。 |
| public |
Set | IP アドレスとポート番号を設定します。 |
| public |
ToString | エンドポイント文字列を取得します。 |
| public |
operator== | 2 つのエンドポイントが等しいか判定します。 |
[ public ] SFUIPEndpoint(Void);
[ public ]
SFUIPEndpoint(
INAddr addr // IP アドレス
INPort port // ポート番号
);
[ public ]
SFUIPEndpoint(
INAddr addr // IP アドレス
);
[ public ]
SFUIPEndpoint(
ConstSFUAnsiStringRef string // エンドポイント文字列
INPort port // ポート番号
);
[ public ]
SFUIPEndpoint(
ConstSFUAnsiStringRef string // エンドポイント文字列
);
SFUIPEndpoint クラスのコンストラクタでは、IP アドレスとポート番号を指定します。
引数にエンドポイント文字列 とポート番号を指定した場合は、 引数に指定されたポート番号が優先されます。
エンドポイント文字列の解析に失敗した場合、 IP アドレスとポート番号に 0 が設定されます。
ポート番号は INPort すなわちネットワーク バイト オーダー で設定する必要があることに注意してください。 これに関する詳細は SFUIPEndpoint::Port を参照してください。
次の例では IP アドレス 192.168.0.1 ポート番号 80 のエンドポイントを作成しています。
SFUIPEndpoint endpoint("192.168.0.1:80");
[ public ] ~SFUIPEndpoint(Void);
[ public ] Void Address( INAddr addr // 設定する IP アドレス );
[ public ] Bool Address( ConstSFUAnsiStringRef strEnd // 設定するエンドポイント文字列 );
[ public, const ] INAddr Address(Void);
エンドポイント文字列を指定する場合、 その文字列中のポート番号指定は無視されます。 エンドポイント文字列の解析に成功した場合は TRUE を返し、 失敗した場合は FALSE を返します。 失敗した場合は IP アドレスとポート番号は 0 にリセットされます。
[ public, const ] Bool Equal( ConstSFUIPEndpointRef endpoint // コピー元のエンドポイント );
2 つのエンドポイントの IP アドレスとポート番号がともに等しければ TRUE を返します。 そうでなければ FALSE を返します。
[ public, const ] INPort Port(Void);
[ public ] SFUIPEndpointRef Port( INPort port // 設定するポート番号 );
ポート番号を設定する関数では、自分自身を返します。
SFUIPEndpoint が受け取るポート番号は INPort ですから、ネットワーク バイト オーダーで設定する必要があります。 ポート番号は 16 ビット値ですから、HTONS() マクロでエンディアン変換を行います。
また、Port() 関数から返されるポート番号も INPort で表現されていることに注意してください。 ネットワーク バイト オーダーからホスト バイト オーダーに変換するには、 NTOHS() マクロを使います。
次の例ではポート番号 80 をネットワーク バイト オーダーに変換した上で、 SFUIPEndpoint に設定しています。
SFUEndpoint endpoint("192.168.0.199");
INPort port = HTONS(80);
endpoint.Port(port);
[ public ] Void Set( INAddr addr // IP アドレス INPort port // ポート番号 );
[ public ] Bool Set( ConstSFUAnsiStringRef strEnd // エンドポイント文字列 INPort port // ポート番号 );
[ public ] Bool Set( ConstSFUAnsiStringRef strEnd // エンドポイント文字列 );
引数にエンドポイント文字列を指定した場合、 その文字列を解析して IP アドレスとポート番号を設定します。 ポート番号を引数で指定された場合は、 エンドポイント文字列の内容にかかわらず引数で指定されたポート番号が設定されます。 文字列の解析に成功すると TRUE を返し、 失敗すると FALSE を返します。 失敗した場合は、IP アドレスとポート番号は 0 にリセットされます。
ポート番号は INPort すなわちネットワーク バイト オーダー で設定する必要があることに注意してください。 これに関する詳細は SFUIPEndpoint::Port を参照してください。
[ public ] SFUAnsiString ToString( Bool bIncludePort = FALSE // ポート番号を含めるか );
エンドポイント文字列 を返します。 bIncludePort に TRUE を指定すると、 返される文字列にポート番号も含められます。
[ public, friend ] Bool operator==( ConstSFUIPEndpointRef endpoint1 ConstSFUIPEndpointRef endpoint2 );
[ public, friend ] Bool operator!=( ConstSFUIPEndpointRef endpoint1 ConstSFUIPEndpointRef endpoint2 );
2 つのエンドポイントの IP アドレスとポート番号がともに等しければ TRUE を返します。 そうでなければ FALSE を返します。
| Copyright(C) 2003-2004 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|