CSocketAddr 類別
這個類別提供將主機名轉換成主機位址的方法,同時支援IPv4和IPV6格式。
語法
class CSocketAddr
成員
公用建構函式
名稱 | 描述 |
---|---|
CSocketAddr::CSocketAddr | 建構函式。 |
公用方法
名稱 | 描述 |
---|---|
CSocketAddr::FindAddr | 呼叫這個方法,將提供的主機名轉換為主機位址。 |
CSocketAddr::FindINET4Addr | 呼叫此方法,將IPv4主機名轉換為主機位址。 |
CSocketAddr::FindINET6Addr | 呼叫這個方法,將IPv6主機名轉換為主機位址。 |
CSocketAddr::GetAddrInfo | 呼叫這個方法,以傳回清單中特定專案的 addrinfo 指標。 |
CSocketAddr::GetAddrInfoList | 呼叫此方法以傳回清單的 addrinfo 指標。 |
備註
這個類別提供IP版本無關的方法,可用來查閱網路位址,以搭配連結庫中的Windows套接字 API 函式和套接字包裝函式使用。
用來查閱網路位址的這個類別成員會使用 Win32 API 函 式 getaddrinfo。 根據您的程式代碼是針對 ANSI 或 UNICODE 編譯,呼叫函式的 ANSI 或 UNICODE 版本。
這個類別同時支援 IPv4 和 IPv6 網路位址。
需求
標頭: atlsocket.h
CSocketAddr::CSocketAddr
建構函式。
CSocketAddr();
備註
建立新的 CSocketAddr
物件,並初始化包含主機之回應信息的連結清單。
CSocketAddr::FindAddr
呼叫這個方法,將提供的主機名轉換為主機位址。
int FindAddr(
const TCHAR *szHost,
const TCHAR *szPortOrServiceName,
int flags,
int addr_family,
int sock_type,
int ai_proto);
int FindAddr(
const TCHAR *szHost,
int nPortNo,
int flags,
int addr_family,
int sock_type,
int ai_proto);
參數
szHost
主機名或虛線IP位址。
szPortOrServiceName
主機上服務的埠號碼或名稱。
nPortNo
連接埠號碼。
flags
0 或AI_PASSIVE、AI_CANONNAME或AI_NUMERICHOST的組合。
addr_family
位址系列(例如PF_INET)。
sock_type
套接字類型(例如SOCK_STREAM)。
ai_proto
通訊協定(例如IPPROTO_IP或IPPROTO_IPV6)。
傳回值
如果成功計算位址,則傳回零。 傳回失敗時的非零 Windows 套接字錯誤碼。 如果成功,匯出位址會儲存在可使用 和 CSocketAddr::GetAddrInfo
參考CSocketAddr::GetAddrInfoList
的連結清單中。
備註
主機名參數可以是IPv4或IPv6格式。 此方法會呼叫 Win32 API 函 式 getaddrinfo 來執行轉換。
CSocketAddr::FindINET4Addr
呼叫此方法,將IPv4主機名轉換為主機位址。
int FindINET4Addr(
const TCHAR *szHost,
int nPortNo,
int flags = 0,
int sock_type = SOCK_STREAM);
參數
szHost
主機名或虛線IP位址。
nPortNo
連接埠號碼。
flags
0 或AI_PASSIVE、AI_CANONNAME或AI_NUMERICHOST的組合。
sock_type
套接字類型(例如SOCK_STREAM)。
傳回值
如果成功計算位址,則傳回零。 傳回失敗時的非零 Windows 套接字錯誤碼。 如果成功,匯出位址會儲存在可使用 和 CSocketAddr::GetAddrInfo
參考CSocketAddr::GetAddrInfoList
的連結清單中。
備註
此方法會呼叫 Win32 API 函 式 getaddrinfo 來執行轉換。
CSocketAddr::FindINET6Addr
呼叫這個方法,將IPv6主機名轉換為主機位址。
int FindINET6Addr(
const TCHAR *szHost,
int nPortNo,
int flags = 0,
int sock_type = SOCK_STREAM);
參數
szHost
主機名或虛線IP位址。
nPortNo
連接埠號碼。
flags
0 或AI_PASSIVE、AI_CANONNAME或AI_NUMERICHOST的組合。
sock_type
套接字類型(例如SOCK_STREAM)。
傳回值
如果成功計算位址,則傳回零。 傳回失敗時的非零 Windows 套接字錯誤碼。 如果成功,匯出位址會儲存在可使用 和 CSocketAddr::GetAddrInfo
參考CSocketAddr::GetAddrInfoList
的連結清單中。
備註
此方法會呼叫 Win32 API 函 式 getaddrinfo 來執行轉換。
CSocketAddr::GetAddrInfo
呼叫這個方法,以傳回清單中特定專案的 addrinfo
指標。
addrinfo* const GetAddrInfo(int nIndex = 0) const;
參數
nIndex
addrinfo 清單中特定項目的參考。
傳回值
傳回連結清單中 nIndex 所參考之結構的指標addrinfo
,其中包含主機的響應資訊。
CSocketAddr::GetAddrInfoList
呼叫此方法以傳回清單的 addrinfo
指標。
addrinfo* const GetAddrInfoList() const;
傳回值
包含主機之回應資訊的一或多個 addrinfo
結構連結清單的指標。 如需詳細資訊,請參閱 addrinfo 結構。