![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
#include <SFXSocketAddress.h.hpp>
class SFXSocketAddress : public SFXInetAddress;
SFMTYPEDEFCLASS(SFXSocketAddress)


IP アドレスとドメインを管理する SFXInetAddress を継承しています。
SFXSocketAddress クラスでドメインを設定し、 SFXTCPSocket クラスの SFXTCPSocket::Connect 関数に渡すことで、SFXTCPSocket クラスがアドレスを解決します。
使用方法
例 771. ドメインを解決する方法
class MyClass {
SFXSocketAddress _socket;
Void Function(Void);
CALLBACK_DECLARE_SFXINETADDRESS(ResolveCallback)
};
Void MyClass::Function(Void)
{
SFCError error;
// ドメインとポート番号を設定する
if ((error = _address.Set("www.example.com:80")) == SFERR_NO_ERROR) {
// ドメインを解決する ( 解決完了はコールバックで通知される )
error = _address.Resolve(CALLBACK_FUNCTION(ResolveCallback));
}
if (error != SFERR_NO_ERROR) {
// コールバックが返らないので、ここでエラー処理をする
}
}
// コールバック関数
CALLBACK_IMPLEMENT_SFXSOCKETADDRESS(MyClass, ResolveCallback, error)
{
SInt16 i;
// 結果の取得
TRACE("%s",_socket.Get().GetCString()); // ドメインとポート番号
TRACE("%s",_socket.GetHost().GetCString()); // ドメイン
TRACE("%s",_socket.GetPort().GetCString()); // ポート番号
// IP アドレスの個数を繰り返す
for(i = 0 ; i < _socket.GetCount() ; i++){
// 結果の取得
TRACE("%s",_socket.GetIP(i).GetCString()); // IP アドレス
}
}
| コンストラクタ/デストラクタ |
|---|
|
SFXSocketAddress( Void ) SFXSocketAddress( SFXSocketAddressConstRef param ) SFXSocketAddress( SFXAnsiStringConstRef param ) SFXSocketAddress( SFXInetAddressConstRef host , UInt16 port ) SFXSocketAddress( SFXAnsiStringConstRef host , UInt16 port ) SFXSocketAddress( INAddr inaddr , INPort inport ) SFXSocketAddress クラスのコンストラクタです。
|
| パブリック関数 | |
|---|---|
| INPort |
AsINPort( Void ) ポート番号を INPort 形式に変換します。
|
| Void |
Clear( Void ) IP アドレスとポート番号を空にします。
|
| static SFXSocketAddressConstRef |
EmptyInstance( Void ) 空のアドレスを取得します。
|
| SFXAnsiString |
Get( Void ) ドメインとポート番号を文字列として取得します。
|
| SFXAnsiStringConstRef |
GetHost( Void ) ドメインを取得します。
|
| UInt16 |
GetPort( Void ) ポート番号を取得します。
|
| SFCError |
Set(
SFXSocketAddressConstRef param
) Set( INAddr inaddr , INPort inport ) Set( SFXAnsiStringConstRef host , UInt16 port ) Set( SFXInetAddressConstRef host , UInt16 port ) Set( SFXAnsiStringConstRef param ) ドメインや IP アドレス、ポート番号を設定します。
|
| SFCError |
SetHost(
SFXInetAddressConstRef param
) SetHost( SFXAnsiStringConstRef param ) ドメイン名を設定します。
|
| Void |
SetPort(
UInt16 param
) ポート番号を設定します。
|
| SFXSocketAddressRef |
operator=(
SFXSocketAddressConstRef param
) ドメインや IP アドレス、ポート番号を代入します。
|
| static SFXInetAddress |
AnyInetAddress( Void )
(SFXInetAddress から継承)
SFXInetAddress 形式の Any アドレスに変換します。
|
| INAddr |
AsINAddr(
SInt16 index = 0
)
(SFXInetAddress から継承)
IP アドレスを INAddr 形式に変換します。
|
| Void |
Cancel( Void )
(SFXInetAddress から継承)
IP アドレスの解決をキャンセルします。
|
| 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 // ポート番号
);
引数が SFXAnsiString の場合、ドメイン文字列としては以下の書式に対応しています。
<protocol> :// <account> @ <domain> : <port> / <path>
この文字列 (一部欠けていても可) が与えられると、<domain> の部分をドメインとして、<port> の部分をポート番号として取り出して設定します (ポート番号を引数で指定した場合はそちらを優先)。
<domain> の部分が IP アドレス ("nnn.nnn.nnn.nnn" という文字列) の場合、自動的に SFXInetAddress::AsINAddr 関数で取得できます。
[ public, const ] INPort AsINPort(Void);
INPort 形式のポート番号を返します。
[ public ] Void Clear(Void);
[ public, static ] SFXSocketAddressConstRef EmptyInstance(Void);
SFXSocketAddress 型の空のアドレスを返します。
[ public, const ] SFXAnsiString Get(Void);
ドメイン名 + ":" + ポート番号の文字列を返します。
[ public, const ] SFXAnsiStringConstRef GetHost(Void);
[ public, const ] UInt16 GetPort(Void);
SFXSocketAddress::AsINPort | SFXSocketAddress::Get | SFXSocketAddress::GetHost | SFXInetAddress::GetIP
[ 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 // ポート番号 );
ドメイン文字列は以下の書式に対応しています。
<protocol> :// <account> @ <domain> : <port> / <path>
このような文字列 (一部欠けていても可) が与えられると、<domain> の部分をドメインとして、<port> の部分をポート番号として取り出して設定します (ポート番号を引数で指定した場合はそちらを優先)。
<domain> の部分が IP アドレス ("nnn.nnn.nnn.nnn" という文字列) の場合、自動的に SFXInetAddress::AsINAddr 関数で取得できるようになります。
Resolve 中に SFXSocketAddress::Set 関数を呼び出した場合はキャンセルされます。
SFXSocketAddress address;
address.Set("http://www.example.com:80/test");
address.GetHost(); // "www.example.com" を返す
address.GetPort(); // 80 を返す
address.Get(); // "www.example.com:80" を返す
SFXSocketAddress address;
address.Set("127.0.0.1/test", 80);
address.AsINAddr(); // 127.0.0.1 を INAddr 形式で返す
address.AsINPort(); // 80 を INPort 形式で返す
[ public ] SFCError SetHost( SFXInetAddressConstRef param // 元になる SFXInetAddress );
[ public ] SFCError SetHost( SFXAnsiStringConstRef param // ドメイン名 );
SFXInetAddress::Set 関数と同等です。
[ public ] SFXSocketAddressRef operator=( SFXSocketAddressConstRef param // 元になる SFXSocketAddress );
ドメインの文字列は以下の書式に対応しています。
<protocol> :// <account> @ <domain> : <port> / <path>
このような文字列 (一部欠けていても可) が与えられると、<domain> の部分をドメインとして、<port> の部分をポート番号として取り出して設定します (ポート番号を引数で指定した場合はそちらを優先)。
<domain> の部分が IP アドレス ("nnn.nnn.nnn.nnn" という文字列) の場合、自動的に SFXInetAddress::AsINAddr 関数で取得できるようになります。
Resolve 中にこの関数を呼び出した場合はキャンセルされます。
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|