SophiaFramework UNIVERSE 5.3 |
#include <SFXSocketAddress.h.hpp>
class SFXSocketAddress : public SFXInetAddress;
SFMTYPEDEFCLASS(SFXSocketAddress)
SFXSocketAddress は、ドメイン名やIP アドレス、ポート番号を管理するためのクラスです。 このクラスは、SFXInetAddress クラスを継承します。
使用方法
注意 | |
---|---|
SFXSocketAddress::SFXSocketAddress コンストラクタ、または SFXSocketAddress::Set 関数で IP アドレスを指定する場合は、 SFXInetAddress::Resolve 関数によるドメイン名の解決は不要です。 |
例 852. ドメイン名を解決する方法
class MyClass { SFXSocketAddress _socket; Void Function(Void); XALLBACK_DECLARE_SFXINETADDRESS(ResolveCallback) }; Void MyClass::Function(Void) { SFCError error; // ドメイン名とポート番号を設定する if ((error = _address.Set("www.example.com:80")) == SFERR_NO_ERROR) { // ドメイン名を解決する ( ドメイン名解決の結果は ResolveCallback 関数に通知される ) error = _address.Resolve(XALLBACK_INTERNAL(ResolveCallback)); } if (error != SFERR_NO_ERROR) { // エラーが発生したとき、ResolveCallback 関数は呼び出されない ... } } // ドメイン名解決の結果が通知されるコールバック関数 XALLBACK_IMPLEMENT_SFXSOCKETADDRESS(MyClass, ResolveCallback, error) { SInt16 i; if (error == SFERR_NO_ERROR) { // ドメイン名とポート番号をデバッグウィンドウに表示する TRACE("%s", _socket.Get().GetCString()); // ドメイン名とポート番号 TRACE("%s", _socket.GetHost().GetCString()); // ドメイン名 TRACE("%s", _socket.GetPort().GetCString()); // ポート番号 // ドメイン名解決の結果である IP アドレスをデバッグウィンドウに表示する for(i = 0 ; i < _socket.GetCount() ; i++){ // i 番目の IP アドレスをデバッグウィンドウに表示する TRACE("%s", _socket.GetIP(i).GetCString()); } } else { // エラーが発生したとき ... } }
SFXTCPSocket / SFXSSLSocket / SFXUDPSocket クラスでソケット通信を行う場合、 SFXSocketAddress クラスのアドレスを渡すと、 ドメイン名は自動的に解決されます。
コンストラクタ/デストラクタ |
---|
SFXSocketAddress( Void ) SFXSocketAddress クラスのコンストラクタです。
|
SFXSocketAddress(
SFXSocketAddressConstRef param
) SFXSocketAddress クラスのコンストラクタです。
|
SFXSocketAddress(
SFXAnsiStringConstRef param
) SFXSocketAddress クラスのコンストラクタです。
|
SFXSocketAddress(
SFXInetAddressConstRef host
, UInt16 port
) SFXSocketAddress クラスのコンストラクタです。
|
SFXSocketAddress(
SFXAnsiStringConstRef host
, UInt16 port
) SFXSocketAddress クラスのコンストラクタです。
|
SFXSocketAddress(
INAddr inaddr
, INPort inport
) SFXSocketAddress クラスのコンストラクタです。
|
パブリック関数 | |
---|---|
INPort |
AsINPort( Void ) ポート番号を取得します。
|
Void |
Clear( Void ) IP アドレスやドメイン名、ポート番号の設定をクリアします。
|
static SFXSocketAddressConstRef |
EmptyInstance( Void ) 空のアドレスを取得します。
|
SFXAnsiString |
Get( Void ) SFXAnsiString 型のドメイン名とポート番号を取得します。
|
SFXAnsiStringConstRef |
GetHost( Void ) ドメイン名を取得します。
|
UInt16 |
GetPort( Void ) ポート番号を取得します。
|
SFCError |
Set(
SFXSocketAddressConstRef param
) ドメイン名や IP アドレス、ポート番号を設定します。
|
SFCError |
Set(
SFXAnsiStringConstRef param
) ドメイン名や IP アドレス、ポート番号を設定します。
|
SFCError |
Set(
SFXInetAddressConstRef host
, UInt16 port
) ドメイン名や IP アドレス、ポート番号を設定します。
|
SFCError |
Set(
SFXAnsiStringConstRef host
, UInt16 port
) ドメイン名や IP アドレス、ポート番号を設定します。
|
SFCError |
Set(
INAddr inaddr
, INPort inport
) ドメイン名や IP アドレス、ポート番号を設定します。
|
SFCError |
SetHost(
SFXInetAddressConstRef param
) ドメイン名を設定します。
|
SFCError |
SetHost(
SFXAnsiStringConstRef param
) ドメイン名を設定します。
|
Void |
SetPort(
UInt16 param
) ポート番号を設定します。
|
SFXSocketAddressRef |
operator=(
SFXSocketAddressConstRef param
) SFXSocketAddress 型のアドレスを代入します。
|
static SFXInetAddress |
AnyInetAddress( Void )
(SFXInetAddress から継承)
SFXInetAddress 型の INADDR_ANY を取得します。
|
INAddr |
AsINAddr(
SInt16 index = 0
)
(SFXInetAddress から継承)
IP アドレスを取得します。
|
Void |
Cancel( Void )
(SFXInetAddress から継承)
ドメイン名の解決をキャンセルします。
|
SInt16 |
GetCount( Void )
(SFXInetAddress から継承)
IP アドレスの個数を取得します。
|
SFXAnsiString |
GetIP(
SInt16 index = 0
)
(SFXInetAddress から継承)
IP アドレスを取得します。
|
static SFXInetAddress |
LocalInetAddress( Void )
(SFXInetAddress から継承)
ローカルホストまたはデバイスの IP アドレスを取得します。
|
static SFXInetAddress |
LoopbackInetAddress( Void )
(SFXInetAddress から継承)
ループバックアドレスを取得します。
|
SFCError |
Resolve(
CallbackSPP spp
, VoidPtr reference
)
(SFXInetAddress から継承)
ドメイン名を解決します。
|
型 |
---|
CallbackSPP
(SFXInetAddress から継承)
アドレス解決の結果が通知されるコールバック関数の型です。
|
[ public, explicit ] SFXSocketAddress(Void);
[ public ] SFXSocketAddress( SFXSocketAddressConstRef param // 元になる SFXSocketAddress );
[ public, explicit ] SFXSocketAddress( SFXAnsiStringConstRef param // ドメイン名とポート番号の文字列 );
[ public, explicit ] SFXSocketAddress( SFXInetAddressConstRef host // 元になる SFXInetAddress UInt16 port // ポート番号 );
[ public, explicit ] SFXSocketAddress( SFXAnsiStringConstRef host // ドメイン名文字列 UInt16 port // ポート番号 );
[ public, explicit ] SFXSocketAddress( INAddr inaddr // IP アドレス INPort inport // ポート番号 );
ドメイン名や IP アドレス、ポート番号がこのコンストラクタの引数に指定された場合は、 内部で SFXSocketAddress::Set 関数を呼び出してこのオブジェクトにドメイン名や IP アドレス、ポート番号を設定します。
そうでない場合は、このコンストラクタは何も行いません。
[ public, const ] INPort AsINPort(Void);
INPort 形式のポート番号を返します。
この関数は、このオブジェクトに設定されたポート番号を INPort 型で取得します。
注意 | |
---|---|
BREW API INPort 型は、以下のように定義されます。 typedef uint16 INPort; |
SFXSocketAddress::GetPort | SFXSocketAddress::Set | SFXSocketAddress::SetPort | SFXSocketAddress::SFXSocketAddress | BREW API INPort
[ public ] Void Clear(Void);
この関数は、SFXInetAddress::Cancel 関数を呼び出して SFXInetAddress::Resolve 関数のドメイン名の解決をキャンセルし、 SFXSocketAddress::Set / SFXSocketAddress::SetHost / SFXSocketAddress::SetPort 関数や SFXSocketAddress::SFXSocketAddress コンストラクタによる IP アドレスやドメイン名、ポート番号の設定をクリアします。
SFXSocketAddress::Set | SFXSocketAddress::SetHost | SFXSocketAddress::SetPort | SFXSocketAddress::SFXSocketAddress | SFXInetAddress::Cancel | SFXInetAddress::Resolve
[ public, static ] SFXSocketAddressConstRef EmptyInstance(Void);
空のアドレス
[ public, const ] SFXAnsiString Get(Void);
"ドメイン名" + ":" + "ポート番号" (SFXAnsiString)
この関数は、このオブジェクトに設定されているドメイン名とポート番号を SFXAnsiString 型の文字列("ドメイン名" + ":" + "ポート番号")として取得します。
注意 | |
---|---|
SFXSocketAddress::SFXSocketAddressコンストラクタ、 またはSFXSocketAddress::Set 関数で BREW API INAddr 型の IP アドレスが設定された場合は、 IP アドレスを "nnn.nnn.nnn.nnn" (nnn: 数字) の書式の SFXAnsiString 文字列に変換し、それをドメイン名として返します。 |
SFXSocketAddress::Set | SFXSocketAddress::SetHost | SFXSocketAddress::SFXSocketAddress | SFXSocketAddress::operator= | SFXSocketAddress::GetHost | SFXSocketAddress::GetPort | SFXInetAddress::GetIP | SFXAnsiString | BREW API INAddr
[ public, const ] SFXAnsiStringConstRef GetHost(Void);
ドメイン名(SFXAnsiString)
SFXSocketAddress::SetHost SFXSocketAddress::Set | SFXSocketAddress::SFXSocketAddress | SFXSocketAddress::Get | SFXSocketAddress::GetPort | SFXInetAddress::Get | SFXInetAddress::GetIP | SFXAnsiString
[ public, const ] UInt16 GetPort(Void);
ポート番号(UInt16 型)
この関数は、このオブジェクトに設定されているポート番号を UInt16 型の整数として取得します。
SFXSocketAddress::SetPort | SFXSocketAddress::AsINPort | SFXSocketAddress::Get | SFXSocketAddress::GetHost | SFXInetAddress::GetIP | SFXSocketAddress::Set | SFXSocketAddress::SFXSocketAddress
[ public ] SFCError Set( SFXSocketAddressConstRef param // 元になる SFXSocketAddress );
[ public ] SFCError Set( SFXAnsiStringConstRef param // ドメイン名とポート番号の文字列 );
[ public ] SFCError Set( SFXInetAddressConstRef host // 元になる SFXInetAddress UInt16 port // ポート番号 );
[ public ] SFCError Set( SFXAnsiStringConstRef host // ドメイン名文字列 UInt16 port // ポート番号 );
[ public ] SFCError Set( INAddr inaddr // IP アドレス INPort inport // ポート番号 );
この関数は、このオブジェクトに IP アドレスやドメイン名、ポート番号を設定します。
設定した IP アドレスや、ドメイン名、ポート番号は、 SFXSocketAddress::Get 関数により取得できます。 また、ドメイン名、ポート番号は、 それぞれ SFXSocketAddress::GetHost 関数、 SFXSocketAddress::GetPort 関数により取得できます。
引数が SFXAnsiString 文字列の場合、 以下の書式の文字列を指定することが可能であり、 この書式の文字列からドメイン名とポート番号(省略時は "0")が抜き出されて設定されます。
<プロトコル> :// <ドメイン名> : <ポート番号> / <パス>
または
<アカウント> @ <ドメイン名>
引数の SFXAnsiString 文字列に含まれる <ドメイン名> が "nnn.nnn.nnn.nnn" (nnn: 数字) の形式である場合、 または 引数が BREW API INAddr 型の IP アドレスの場合、 IP アドレスを取得するために SFXInetAddress::Resolve 関数を呼び出す必要はありません。 この場合、ドメイン名を解決することなく、IP アドレスは SFXInetAddress::AsINAddr / SFXInetAddress::GetIP 関数により取得できます。
注意 | |
---|---|
この関数は、内部で最初に SFXInetAddress::Cancel 関数を呼び出します。 そのため、Resolve 中(SFXInetAddress::Resolve 関数を呼び出してからコールバック関数に結果が通知されるまで)に この関数を呼び出した場合、Resolve(ドメイン名の解決)はキャンセルされます。 |
SFXSocketAddress address; SFXAnsiString domain, host, port; address.Set("http://www.example.com:80/test"); domain = address.Get(); // ドメイン名とポート番号("www.example.com:80")を取得する host = address.GetHost(); // ドメイン名("www.example.com")を取得する port = address.GetPort(); // ポート番号("80")を取得する
SFXSocketAddress address; INAddr ipaddress_INAddr; INPort port_INPort; SFXAnsiString ipaddress_SFXAnsiString; address.Set("127.0.0.1/test", 80); ipaddress_INAddr = address.AsINAddr(); // IP アドレス("127.0.0.1")を INAddr 型で取得する inport_INPort = address.AsINPort(); // ポート番号("80")を INPort 型で取得する ipaddress_SFXAnsiString = address.GetIP(); // IP アドレス("127.0.0.1") を SFXAnsiString 型で取得する
SFXSocketAddress::Get | SFXSocketAddress::GetHost | SFXSocketAddress::GetPort | SFXSocketAddress::AsINPort | SFXSocketAddress::SetHost | SFXSocketAddress::SetPort | SFXSocketAddress::operator= | SFXSocketAddress::Clear | SFXInetAddress::Cancel | SFXInetAddress::SFXInetAddress | SFXInetAddress::GetIP | SFXInetAddress::AsINAddr | SFXInetAddress::Resolve | SFXAnsiString | BREW API INAddr
[ public ] SFCError SetHost( SFXInetAddressConstRef param // 元になる SFXInetAddress );
[ public ] SFCError SetHost( SFXAnsiStringConstRef param // ドメイン名 );
この関数は、内部で SFXInetAddress::Set 関数を呼び出して引数に指定されたドメイン名を設定します。
Tip | |
---|---|
この関数は、SFXInetAddress::Set 関数と同等です。 |
注意 | |
---|---|
ドメイン名は、SFXSocketAddress::Set 関数や SFXSocketAddress::SFXSocketAddress コンストラクタでも指定できます。 |
SFXSocketAddress::GetHost | SFXSocketAddress::Set | SFXSocketAddress::SFXSocketAddress | SFXInetAddress::Set
この関数は、このオブジェクトに引数に指定されたポート番号を設定します。
デフォルト値: 0
注意 | |
---|---|
ポート番号は、SFXSocketAddress::Set 関数や SFXSocketAddress::SFXSocketAddress コンストラクタでも指定できます。 |
SFXSocketAddress::GetPort | SFXSocketAddress::Set | SFXSocketAddress::SFXSocketAddress | SFXSocketAddress::SetHost
[ public ] SFXSocketAddressRef operator=( SFXSocketAddressConstRef param // 元になる SFXSocketAddress );
このオペレーターは、指定された SFXSocketAddress 型のアドレスを入します。
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |