共用方式為


CSADDR_INFO 結構 (ws2def.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 本機位址。

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

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

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_INET6iSocketType 成員 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 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 ws2def.h (include Nspapi.h)

另請參閱

GetAddressByName

SOCKET_ADDRESS

SO_BSP_STATE

bind

connect

getsockopt

recv

send

sendto