前のページ次のページ上に戻るホーム SophiaFramework 2.2
SFUIPEndpoint
IP アドレスとポート番号のペアを表します。
#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 進数表記です。

参照

SFUNetworkStream

メンバ

コンストラクタ/デストラクタ
public
SFUIPEndpoint SFUIPEndpoint クラスのコンストラクタです。
public
~SFUIPEndpoint SFUIPEndpoint クラスのデストラクタです。
パブリック関数
public
Address IP アドレスを取得/設定します。
public
Equal 2 つのエンドポイントが等しいか判定します。
public
Port ポート番号を取得/設定します。
public
Set IP アドレスとポート番号を設定します。
public
ToString エンドポイント文字列を取得します。
public
operator== 2 つのエンドポイントが等しいか判定します。

SFUIPEndpoint::SFUIPEndpoint
SFUIPEndpoint クラスのコンストラクタです。
[ 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");

SFUIPEndpoint::~SFUIPEndpoint
SFUIPEndpoint クラスのデストラクタです。
[ public ]
~SFUIPEndpoint(Void);

SFUIPEndpoint::Address
IP アドレスを取得/設定します。
[ public ]
Void Address(
    INAddr addr   // 設定する IP アドレス
);
[ public ]
Bool Address(
    ConstSFUAnsiStringRef strEnd   // 設定するエンドポイント文字列
);
[ public, const ]
INAddr Address(Void);

解説

エンドポイント文字列を指定する場合、 その文字列中のポート番号指定は無視されます。 エンドポイント文字列の解析に成功した場合は TRUE を返し、 失敗した場合は FALSE を返します。 失敗した場合は IP アドレスとポート番号は 0 にリセットされます。

参照

SFUIPEndpoint::Port


SFUIPEndpoint::Equal
2 つのエンドポイントが等しいか判定します。
[ public, const ]
Bool Equal(
    ConstSFUIPEndpointRef endpoint   // コピー元のエンドポイント
);

戻り値

2 つのエンドポイントの IP アドレスとポート番号がともに等しければ TRUE を返します。 そうでなければ FALSE を返します。

参照

SFUIPEndpoint::operator==


SFUIPEndpoint::Port
ポート番号を取得/設定します。
[ 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);

参照

SFUIPEndpoint::Address | INPort | HTONS | NTOHS


SFUIPEndpoint::Set
IP アドレスとポート番号を設定します。
[ 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 を参照してください。

参照

SFUIPEndpoint::Address | SFUIPEndpoint::Port


SFUIPEndpoint::ToString
エンドポイント文字列を取得します。
[ public ]
SFUAnsiString ToString(
    Bool bIncludePort = FALSE   // ポート番号を含めるか
);

戻り値

エンドポイント文字列 を返します。 bIncludePort に TRUE を指定すると、 返される文字列にポート番号も含められます。


SFUIPEndpoint::operator==
2 つのエンドポイントが等しいか判定します。
[ public, friend ]
Bool operator==(
    ConstSFUIPEndpointRef endpoint1   
    ConstSFUIPEndpointRef endpoint2   
);
[ public, friend ]
Bool operator!=(
    ConstSFUIPEndpointRef endpoint1   
    ConstSFUIPEndpointRef endpoint2   
);

戻り値

2 つのエンドポイントの IP アドレスとポート番号がともに等しければ TRUE を返します。 そうでなければ FALSE を返します。

参照

SFUIPEndpoint::Equal