CSADDR_INFO結構 (nspapi.h)

CSADDR_INFO 結構包含套接字、網路服務或命名空間提供者的 Windows 套接字地址資訊。

語法

typedef struct _CSADDR_INFO {
  SOCKET_ADDRESS LocalAddr;
  SOCKET_ADDRESS RemoteAddr;
  INT            iSocketType;
  INT            iProtocol;
} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;

成員

LocalAddr

類型: SOCKET_ADDRESS

Windows Sockets 本機位址。

在用戶端應用程式中,將此位址傳遞至 bind 函式,以取得網路服務的存取權。

在網路服務中,將此位址傳遞至 bind 函式,讓服務系結至適當的本機位址。

RemoteAddr

類型: SOCKET_ADDRESS

Windows Sockets 遠端位址。

此遠端位址有幾個用途:

  • 您可以使用此遠端位址透過 connect 函式連線到服務。 如果應用程式執行涉及連線導向通訊協定的 傳送/接收 作業,這非常有用。
  • 當您透過無連線 (數據報) 通訊協議進行通訊時,可以搭配 sendto 函式使用此遠端位址。 如果您使用無連線通訊協定,例如 UDP,sendto 通常是將數據傳遞至遠端系統的方式。

iSocketType

類型: INT

Windows 套接字的類型。 套接字類型的可能值定義在 Winsock2.h 頭檔中。

下表列出 Windows Sockets 2 支援的可能值:

意義
SOCK_STREAM
數據流套接字。 這是一種通訊協定,可將數據當做位元節數據流傳送,而沒有訊息界限。 此套接字類型提供循序、可靠、雙向、以連線為基礎的位元組數據流與 OOB 資料傳輸機制。 此套接字類型會針對因特網位址系列 (AF_INET 或AF_INET6) 使用传输控制通讯协议 (TCP) 。
SOCK_DGRAM
數據報套接字。 此套接字類型支持數據報,這些數據報是固定 (固定) 最大長度的無連接、不可靠的緩衝區。 此套接字類型會針對因特網位址系列 (AF_INET 或AF_INET6) 使用用户数据报通讯协议 (UDP) 。

服務會使用 recvfrom 函式來取得數據報。 接 接受 函式不適用於數據報。

SOCK_RDM
可靠的訊息數據報套接字。 此套接字類型會保留數據中的訊息界限。 此類型的範例是 Windows 中的「實用一般多播」 (PGM) 多播通訊協議實作,通常稱為 可靠的多播程序設計
SOCK_SEQPACKET
循序封包數據流套接字。 此套接字類型會根據數據報提供虛擬數據流封包。

iProtocol

類型: INT

使用的通訊協定。 通訊 協議 參數的可能選項專屬於指定的位址系列和套接字類型。 可能的值定義於 Winsock2.hWsrm.h 頭檔中。

在針對 Windows Vista 和更新版本發行的 Windows SDK 上,頭文件的組織已變更,而且此參數可以是 Ws2def.h 頭檔中所定義之 IPPROTO 列舉類型的其中一個值。 請注意, Ws2def.h 頭文件會自動包含在 Winsock2.h 中,不應該直接使用。

下表列出通訊 協議 的常見值,但可能有許多其他值。

protocol 意義
IPPROTO_TCP
6
傳輸控制通訊協定 (TCP) 。 當位址系列 AF_INETAF_INET6且iSocketType 成員 SOCK_STREAM時,這是可能的值。
IPPROTO_UDP
17
用戶數據報通訊協定 (UDP) 。 當位址系列 AF_INETAF_INET6iSocketType 成員 SOCK_DGRAM時,這是可能的值。
IPPROTO_RM
113
可靠多播的PGM通訊協定。 當位址系列 AF_INET且iSocketType 成員 SOCK_RDM時,這是可能的值。 在針對 Windows Vista 和更新版本發行的 Windows SDK 上,這個值也稱為IPPROTO_PGM

備註

GetAddressByName 函式會使用 CSADDR_INFO 結構取得 Windows Sockets 位址資訊。

使用 SO_BSP_STATE 套接字選項呼叫的 getsockopt 函式會擷取指定套接字的CSADDR_INFO結構。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 nspapi.h (包含 Nspapi.h)

另請參閱

GetAddressByName

SOCKET_ADDRESS

SO_BSP_STATE

bind

connect

getsockopt

recv

send

sendto