TNB Library
公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CSocketAddress クラス

Socket共通アドレス管理クラス [詳解]

#include <TnbSocket.h>

公開メンバ関数

 CSocketAddress (WORD portNo, LPCTSTR lpszIpAddressName)
 コンストラクタ. [詳解]
 
 CSocketAddress (WORD portNo=0, DWORD ipAddress=0)
 コンストラクタ [詳解]
 
void Get (IN_ADDR &_inaddr) const
 [取得] IPアドレス取得. [詳解]
 
void Get (SOCKADDR_IN &_sockaddr) const
 [取得] IP アドレス&ポート No 取得. [詳解]
 
DWORD GetAddress (void) const
 [取得] IP アドレス取得. [詳解]
 
CStr GetAddressString (bool withDns=true) const
 [取得] IP アドレス文字列取得. [詳解]
 
CStr GetHostName (void) const
 [取得] ホスト名取得. [詳解]
 
WORD GetPortNo (void) const
 [取得] ポートNo取得. [詳解]
 
bool IsBroadcast (void) const
 [確認] ブロードキャスト?. [詳解]
 
void Set (const SOCKADDR_IN &sockaddr)
 [設定] アドレス設定. [詳解]
 
void Set (WORD portNo, DWORD ipAddress=0)
 [設定] アドレス設定. [詳解]
 
void Set (WORD portNo, LPCTSTR lpszIpAddressName)
 [設定] アドレス設定. [詳解]
 

静的公開メンバ関数

static DWORD htonl (DWORD hostlong)
 [変換] バイトオーダー変換(host to network) unsigned long (32bit) を Host Byte Order から Network Byte Order に変換します。 [詳解]
 
static WORD htons (WORD hostshort)
 [変換] バイトオーダー変換(host to network) unsigned short (16bit) を Host Byte Order から Network Byte Order に変換します。 [詳解]
 
static DWORD ntohl (DWORD netlong)
 [変換] バイトオーダー変換(network to host) unsigned long (32bit) を Network Byte Order から Host Byte Order に変換します。 [詳解]
 
static DWORD ntohs (DWORD netshort)
 [変換] バイトオーダー変換(network to host) unsigned short (16bit) を Network Byte Order から Host Byte Order に変換します。 [詳解]
 

詳解

Socket共通アドレス管理クラス

一対のポート No と IP アドレスを管理します。
覚え書き
IP アドレスを文字列で登録している場合、アドレス取得時に gethostbyname() を使って処理しています。
本クラスが引数や戻り値で扱う DWORD 型の IP アドレス、WORD 型のポート No は、 Host Byte Order になります。socket の関数に使用する場合、注意してください。 値が Network Byte Order の場合、明記しています。
必要ファイル
TnbSocket.h
日付
09/08/27 新規作成

TnbSocket.h62 行目に定義があります。

構築子と解体子

◆ CSocketAddress() [1/2]

CSocketAddress ( WORD  portNo = 0,
DWORD  ipAddress = 0 
)

コンストラクタ

引数
portNoポート No。省略すると、0になります。
ipAddressIP アドレス。省略すると、 INADDR_ANY になります。

TnbSocket.h71 行目に定義があります。

◆ CSocketAddress() [2/2]

CSocketAddress ( WORD  portNo,
LPCTSTR  lpszIpAddressName 
)

コンストラクタ.

覚え書き
IPアドレスは、 "127.0.0.1" や "LD04001" などが指定できます。
引数
portNoポートNo
lpszIpAddressNameIPアドレス名。

TnbSocket.h82 行目に定義があります。

関数詳解

◆ Get() [1/2]

void Get ( IN_ADDR &  _inaddr) const

[取得] IPアドレス取得.

引数
[out]_inaddrIP アドレスが Network Byte Order で格納されます。

TnbSocket.h135 行目に定義があります。

◆ Get() [2/2]

void Get ( SOCKADDR_IN &  _sockaddr) const

[取得] IP アドレス&ポート No 取得.

引数
[out]_sockaddrIP アドレスとポート No が Network Byte Order で格納されます。 (SOCKADDR_IN の sin_addr メンバと sin_port メンバのみ更新します)。

TnbSocket.h167 行目に定義があります。

◆ GetAddress()

DWORD GetAddress ( void  ) const

[取得] IP アドレス取得.

戻り値
IP アドレス。

TnbSocket.h222 行目に定義があります。

◆ GetAddressString()

CStr GetAddressString ( bool  withDns = true) const

[取得] IP アドレス文字列取得.

引数
withDnstrue なら DNS からホスト名を取得を試みます。取得できなかった場合、数値の羅列("127.0.0.1") を返します。 false なら DNS に問い合わせせず、数値の羅列を返します。
戻り値
IPアドレス文字列

TnbSocket.h198 行目に定義があります。

◆ GetHostName()

CStr GetHostName ( void  ) const

[取得] ホスト名取得.

DNS から保持している IP アドレスのホスト名を取得します。

覚え書き
保持している IP アドレスが、 INADDR_ANY の場合、自分のホスト名が取得されます。
戻り値
Empty見つからなかった。
上記以外ホスト名。

TnbSocket.h180 行目に定義があります。

◆ GetPortNo()

WORD GetPortNo ( void  ) const

[取得] ポートNo取得.

戻り値
ポートNo

TnbSocket.h233 行目に定義があります。

◆ htonl()

static DWORD htonl ( DWORD  hostlong)
static

[変換] バイトオーダー変換(host to network) unsigned long (32bit) を Host Byte Order から Network Byte Order に変換します。

覚え書き
「Host TO Network Long」の略です。
引数
hostlongHost Byte Order の値
戻り値
Network Byte Order の値

TnbSocket.h255 行目に定義があります。

◆ htons()

static WORD htons ( WORD  hostshort)
static

[変換] バイトオーダー変換(host to network) unsigned short (16bit) を Host Byte Order から Network Byte Order に変換します。

覚え書き
「Host TO Network Short」の略です。
引数
hostshortHost Byte Order の値
戻り値
Network Byte Order の値

TnbSocket.h267 行目に定義があります。

◆ IsBroadcast()

bool IsBroadcast ( void  ) const

[確認] ブロードキャスト?.

戻り値
true保持してるアドレスはブロードキャスト.
false

TnbSocket.h243 行目に定義があります。

◆ ntohl()

static DWORD ntohl ( DWORD  netlong)
static

[変換] バイトオーダー変換(network to host) unsigned long (32bit) を Network Byte Order から Host Byte Order に変換します。

覚え書き
「Network TO Host Long」の略です。
引数
netlongNetwork Byte Order の値
戻り値
Host Byte Order の値

TnbSocket.h279 行目に定義があります。

◆ ntohs()

static DWORD ntohs ( DWORD  netshort)
static

[変換] バイトオーダー変換(network to host) unsigned short (16bit) を Network Byte Order から Host Byte Order に変換します。

覚え書き
「Network TO Host Short」の略です。
引数
netshortNetwork Byte Order の値
戻り値
Host Byte Order の値

TnbSocket.h291 行目に定義があります。

◆ Set() [1/3]

void Set ( const SOCKADDR_IN &  sockaddr)

[設定] アドレス設定.

IPアドレスとポートNoを設定します。

引数
sockaddrNetwork Byte Order のポート No と IP アドレス (SOCKADDR_IN の sin_addr メンバと sin_port メンバのみ参照します)。

TnbSocket.h123 行目に定義があります。

◆ Set() [2/3]

void Set ( WORD  portNo,
DWORD  ipAddress = 0 
)

[設定] アドレス設定.

IPアドレスとポートNoを設定します。

引数
portNoポート No。
ipAddressIP アドレス。省略すると、 INADDR_ANY になります。

TnbSocket.h94 行目に定義があります。

◆ Set() [3/3]

void Set ( WORD  portNo,
LPCTSTR  lpszIpAddressName 
)

[設定] アドレス設定.

IPアドレスとポートNoを設定します。

覚え書き
IPアドレスは、 "127.0.0.1" や "LD04001" などが指定できます。
引数
portNoポートNo
lpszIpAddressNameIPアドレス名。

TnbSocket.h109 行目に定義があります。